blob: eecb0d5e344739dcd7400479b5305f2ba344d353 [file] [log] [blame]
package test.failedreporter;
import org.testng.Assert;
import org.testng.TestNG;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import org.testng.collections.Lists;
import test.BaseTest;
import java.io.File;
import java.io.IOException;
import java.util.List;
public class FailedReporterTest extends BaseTest {
private File mTempDirectory;
@BeforeMethod
public void setUp() {
File slashTmpDir = new File(System.getProperty("java.io.tmpdir"));
mTempDirectory = new File(slashTmpDir, "testng-tmp-" + System.currentTimeMillis() % 1000);
mTempDirectory.mkdirs();
mTempDirectory.deleteOnExit();
}
@AfterMethod
public void tearDown() {
deleteDir(mTempDirectory);
}
@Test
public void failedAndSkippedMethodsShouldBeIncluded() throws IOException {
testFailedReporter(FailedReporterSampleTest.class, new String[] { "f1", "f2" },
"<include name=\"%s\"" + "\"/>"); }
@Test
public void failedMethodWithDataProviderShouldHaveInvocationNumbers() throws IOException {
testFailedReporter(FailedReporter2SampleTest.class, new String[] { "f1" },
"<include invocationNumbers=\"1\" name=\"%s\"" + "\"/>");
}
private void testFailedReporter(Class<?> cls, String[] expectedMethods, String expectedLine) {
TestNG tng = new TestNG();
tng.setVerbose(0);
tng.setTestClasses(new Class[] { cls });
tng.setOutputDirectory(mTempDirectory.getAbsolutePath());
tng.run();
File failed = new File(mTempDirectory, "testng-failed.xml");
for (String s : expectedMethods) {
List<String> resultLines = Lists.newArrayList();
grep(failed, expectedLine.format(s), resultLines);
Assert.assertEquals(1, resultLines.size());
}
}
}