package test; import java.util.Arrays; import org.testng.Assert; import org.testng.TestListenerAdapter; import org.testng.TestNG; import org.testng.annotations.Test; /** * Check for a bug in how relative paths in suite files were being handled. * * All paths were being resolved using the initial suite's location and not * that of the current suite being parsed/processed. * * This test checks that TestNG can handle cases where we have the following set of * files (all linked using relative paths): * * - parent-suite -> [child-suite-1, children/child-suite-3] * - children/child-suite-3 -> [../child-suite-2, child-suite-4, morechildren/child-suite-5] * * Check the <code>checksuitesinitialization</code> folder under test resources * * @author Nalin Makar */ public class CheckSuitesInitializationTest extends SimpleBaseTest { /** * Child suites and tests within different suites have same names */ @Test public void check() { TestListenerAdapter tla = new TestListenerAdapter(); TestNG tng = create(); String testngXmlPath = getPathToResource("checksuitesinitialization/parent-suite.xml"); tng.setTestSuites(Arrays.asList(testngXmlPath)); tng.addListener(tla); tng.run(); Assert.assertEquals(tla.getPassedTests().size(), 4); } }