blob: 778dd2ecb9625cdf8f8dcea150cb777678eab8e2 [file] [log] [blame]
package test.reports;
import org.testng.Assert;
import org.testng.ITestListener;
import org.testng.ITestResult;
import org.testng.Reporter;
import org.testng.TestListenerAdapter;
import org.testng.TestNG;
import org.testng.annotations.Test;
import org.testng.xml.XmlSuite;
import org.testng.xml.XmlTest;
import test.TestHelper;
import java.io.File;
import java.util.Arrays;
import java.util.List;
public class ReportTest {
@Test
public void verifyIndex() {
File outputDir = TestHelper.createRandomDirectory();
String suiteName = "VerifyIndexSuite";
String testName = "TmpTest";
XmlSuite suite = TestHelper.createSuite(test.simple.SimpleTest.class, suiteName, testName);
TestNG tng = TestHelper.createTestNG(suite, outputDir.getAbsolutePath());
File f = getHtmlReportFile(outputDir, suiteName, testName);
tng.run();
Assert.assertTrue(f.exists());
}
@Test
public void directoryShouldBeSuiteName() {
File outputDirectory = TestHelper.createRandomDirectory();
XmlSuite xmlSuite = new XmlSuite();
String suiteName = "ReportTestSuite1";
xmlSuite.setName(suiteName);
XmlTest xmlTest = new XmlTest(xmlSuite);
String testName = "Test1";
xmlTest.setName(testName);
XmlTest xmlTest2 = new XmlTest(xmlSuite);
String testName2 = "Test2";
xmlTest2.setName(testName2);
TestNG testng = new TestNG();
testng.setVerbose(0);
testng.setOutputDirectory(outputDirectory.getAbsolutePath());
testng.setXmlSuites(Arrays.asList(xmlSuite));
File f = getHtmlReportFile(outputDirectory, suiteName, testName);
File f2 = getHtmlReportFile(outputDirectory, suiteName, testName2);
testng.run();
Assert.assertTrue(f.exists(), "Expected to find file:" + f);
Assert.assertTrue(f2.exists(), "Expected to find file:" + f2);
}
@Test
public void oneDirectoryPerSuite() {
File outputDirectory = TestHelper.createRandomDirectory();
String testName = "TmpTest";
String suiteNameA = "ReportSuiteA";
XmlSuite xmlSuiteA = TestHelper.createSuite(test.reports.A.class, suiteNameA, testName);
String suiteNameB = "ReportSuiteB";
XmlSuite xmlSuiteB = TestHelper.createSuite(test.reports.B.class, suiteNameB, testName);
TestNG testng = TestHelper.createTestNG();
testng.setOutputDirectory(outputDirectory.getAbsolutePath());
testng.setXmlSuites(Arrays.asList(xmlSuiteA, xmlSuiteB));
File f1 = getHtmlReportFile(outputDirectory, suiteNameA, testName);
File f2 = getHtmlReportFile(outputDirectory, suiteNameB, testName);
testng.run();
Assert.assertTrue(f1.exists());
Assert.assertTrue(f2.exists());
}
private static File getHtmlReportFile(File outputDir, String suiteName, String testName) {
File f = new File(outputDir.getAbsolutePath() + File.separatorChar + suiteName
+ File.separatorChar + testName + ".html");
if (f.exists()) {
f.delete();
}
return f;
}
@Test
public void shouldHonorSuiteName() {
TestNG testng = TestHelper.createTestNG();
testng.setTestClasses(new Class[] { A.class, B.class });
String outputDir = testng.getOutputDirectory();
String dirA = outputDir + File.separatorChar + "SuiteA-JDK5";
File fileA = new File(dirA);
String dirB = outputDir + File.separatorChar + "SuiteB-JDK5";
File fileB = new File(dirB);
Assert.assertFalse(fileA.exists());
Assert.assertFalse(fileB.exists());
testng.run();
Assert.assertTrue(fileA.exists(), fileA + " wasn't created");
Assert.assertTrue(fileB.exists(), fileB + " wasn't created");
}
static boolean m_success = false;
@Test
public void reportLogShouldBeAvailableEvenWithTimeOut() {
m_success = false;
TestNG tng = new TestNG();
tng.setVerbose(0);
tng.setTestClasses(new Class[] { ReporterSampleTest.class });
ITestListener listener = new TestListenerAdapter() {
@Override
public void onTestSuccess(ITestResult tr) {
super.onTestSuccess(tr);
List<String> output = Reporter.getOutput(tr);
m_success = output != null && output.size() > 0;
}
};
tng.addListener(listener);
tng.run();
Assert.assertTrue(m_success);
}
}