package test.methodselectors; import org.testng.Assert; import org.testng.ITestResult; import org.testng.TestListenerAdapter; import org.testng.TestNG; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import org.testng.collections.Lists; import org.testng.xml.XmlClass; import org.testng.xml.XmlMethodSelector; import org.testng.xml.XmlSuite; import org.testng.xml.XmlTest; import test.SimpleBaseTest; import testhelper.OutputDirectoryPatch; import java.util.Arrays; import java.util.List; public class MethodSelectorInSuiteTest extends SimpleBaseTest{ private TestListenerAdapter m_tla; @BeforeMethod public void setup() { m_tla = new TestListenerAdapter(); } @Test public void programmaticXmlSuite() { TestNG tng = create(); XmlSuite suite = new XmlSuite(); XmlMethodSelector methodSelector = new XmlMethodSelector(); methodSelector.setName("test.methodselectors.Test2MethodSelector"); methodSelector.setPriority(-1); List<XmlMethodSelector> methodSelectors = Lists.newArrayList(); methodSelectors.add(methodSelector); suite.setMethodSelectors(methodSelectors); XmlTest test = new XmlTest(suite); XmlClass testClass = new XmlClass(test.methodselectors.SampleTest.class); test.setXmlClasses(Arrays.asList(testClass)); tng.setXmlSuites(Arrays.asList(suite)); tng.addListener(m_tla); tng.run(); validate(new String[] { "test2" }); } @Test public void xmlXmlSuite() { TestNG tng = create(); tng.setTestSuites(Arrays.asList(getPathToResource("methodselector-in-xml.xml"))); tng.addListener(m_tla); tng.run(); validate(new String[] { "test2" }); } @Test public void fileOnCommandLine() { String[] args = new String[] { "-d", OutputDirectoryPatch.getOutputDirectory(), getPathToResource("methodselector-in-xml.xml") }; TestNG.privateMain(args, m_tla); validate(new String[] { "test2" }); } private void validate(String[] expectPassed) { List<ITestResult> passed = m_tla.getPassedTests(); Assert.assertEquals(passed.size(), expectPassed.length); // doing this index based is probably not the best for (int i = 0; i < expectPassed.length; i++) { Assert.assertEquals(passed.get(i).getName(), expectPassed[i]); } } }