package test.configuration; import org.testng.Assert; import org.testng.ITestNGListener; import org.testng.Reporter; import org.testng.TestListenerAdapter; import org.testng.TestNG; import org.testng.annotations.BeforeSuite; import org.testng.annotations.Test; import org.testng.xml.XmlClass; import org.testng.xml.XmlSuite; import org.testng.xml.XmlTest; import test.TestHelper; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; public class BeforeTestOrderingTest { private static final List<String> m_testNames = new ArrayList<>(); @BeforeSuite public void init() { m_testNames.clear(); } static void addTest(String testName) { m_testNames.add(testName); } private static final List<String> expected = Arrays.asList("bt1", "f1", "at1", "bt2", "f2", "at2"); @Test public void verifyBeforeTestOrdering() throws IOException { XmlSuite s = new XmlSuite(); Reporter.log("BEFORE"); XmlTest t1 = new XmlTest(s); XmlClass c1 = new XmlClass(BeforeTestOrdering1Test.class); t1.getXmlClasses().add(c1); XmlTest t2 = new XmlTest(s); XmlClass c2 = new XmlClass(BeforeTestOrdering2Test.class); t2.getXmlClasses().add(c2); TestNG tng = TestHelper.createTestNG(); TestListenerAdapter tl = new TestListenerAdapter(); tng.addListener((ITestNGListener) tl); tng.setXmlSuites(Collections.singletonList(s)); tng.run(); Assert.assertEquals(m_testNames, expected); } }