package test.timeout; import org.testng.Assert; import org.testng.TestListenerAdapter; import org.testng.TestNG; import org.testng.annotations.Test; import org.testng.xml.XmlClass; import org.testng.xml.XmlInclude; import org.testng.xml.XmlSuite; import org.testng.xml.XmlTest; import test.BaseTest; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class TimeOutFromXmlTest extends BaseTest { private void timeOutTest(boolean onSuite) { addClass("test.timeout.TestTimeOutSampleTest"); if (onSuite) { setSuiteTimeOut(1000); } else { setTestTimeOut(1000); } run(); String[] passed = { }; String[] failed = { "timeoutTest" }; // dumpResults("Passed", getPassedTests()); // dumpResults("Failed", getFailedTests()); verifyTests("Passed", passed, getPassedTests()); verifyTests("Failed", failed, getFailedTests()); } @Test public void timeOutOnSuiteTag() { timeOutTest(true /* on suite */); } @Test public void timeOutOnTestTag() { timeOutTest(false /* on test */); } @Test public void noTimeOut() { addClass("test.timeout.TestTimeOutSampleTest"); run(); String[] passed = { "timeoutTest" }; String[] failed = { }; verifyTests("Passed", passed, getPassedTests()); verifyTests("Failed", failed, getFailedTests()); } @Test public void twoDifferentTests() { XmlSuite result = new XmlSuite(); result.setName("Suite"); createXmlTest(result, "WithoutTimeOut"); createXmlTest(result, "WithTimeOut").setTimeOut(1000); TestNG tng = new TestNG(); tng.setVerbose(0); tng.setXmlSuites(Arrays.asList(new XmlSuite[] { result })); TestListenerAdapter tla = new TestListenerAdapter(); tng.addListener(tla); tng.run(); // System.out.println("Passed:" + tla.getPassedTests().size() // + " Failed:" + tla.getFailedTests().size()); Assert.assertEquals(tla.getPassedTests().size(), 1); Assert.assertEquals(tla.getFailedTests().size(), 1); } private XmlTest createXmlTest(XmlSuite suite, String name) { XmlTest result = new XmlTest(suite); result.setName(name); List<XmlClass> classes = new ArrayList<XmlClass>(); XmlClass cls = new XmlClass(TestTimeOutSampleTest.class); cls.setIncludedMethods( Arrays.asList(new XmlInclude[] { new XmlInclude("timeoutTest") })); classes.add(cls); result.setXmlClasses(classes); return result; }}