package test.failures; import org.testng.ITestNGListener; import org.testng.TestNG; import org.testng.annotations.Test; import org.testng.reporters.FailedReporter; import org.testng.xml.XmlSuite; import test.TestHelper; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.HashMap; import java.util.Map; public class FailuresTest extends BaseFailuresTest { private static final String suiteName = "TmpSuite"; private static final String[] expected = new String[] { "<class name=\"test.failures.Child\">", "<include name=\"fail\"/>", "<include name=\"failFromBase\"/>", }; @Test public void shouldIncludeFailedMethodsFromBaseClass() throws IOException { Path tempDirectory = Files.createTempDirectory("temp-testng-"); XmlSuite suite = createXmlSuite(suiteName, "TmpTest", Child.class); TestNG tng = create(tempDirectory, suite); tng.addListener((ITestNGListener) new FailedReporter()); tng.run(); verify(tempDirectory, suiteName, expected); } private static final String[] expectedIncludes = new String[] { "<include name=\"f1\"/>", "<include name=\"f2\"/>" }; @Test(enabled = false) public void shouldIncludeDependentMethods() throws IOException { Path tempDirectory = Files.createTempDirectory("temp-testng-"); XmlSuite suite = TestHelper.createSuite("test.failures.DependentTest", suiteName); TestNG tng = TestHelper.createTestNG(suite); tng.run(); verify(tempDirectory, suiteName, expectedIncludes); } private static final String[] expectedParameter = new String[] { "<parameter name=\"first-name\" value=\"Cedric\"/>" }; @Test(enabled = false) public void shouldIncludeParameters() throws IOException { Path tempDirectory = Files.createTempDirectory("temp-testng-"); XmlSuite suite = TestHelper.createSuite("test.failures.Child", suiteName); Map<String, String> params = new HashMap<>(); params.put("first-name", "Cedric"); params.put("last-name", "Beust"); suite.setParameters(params); TestNG tng = TestHelper.createTestNG(suite); tng.run(); verify(tempDirectory, suiteName, expectedParameter); } }