package test.commandline;
import org.testng.TestListenerAdapter;
import org.testng.TestNG;
import org.testng.annotations.Test;
import org.testng.xml.XmlSuite;
import org.testng.xml.XmlTest;
import test.SimpleBaseTest;
import java.util.Arrays;
import java.util.List;
public class CommandLineOverridesXml extends SimpleBaseTest {
@Test(description = "Specifying -groups on the command line should override testng.xml")
public void commandLineGroupsShouldOverrideXml() {
runTest("go", null, Arrays.asList(new String[] { "f2" }));
}
@Test(description = "Specifying -excludegroups on the command line should override testng.xml")
public void commandLineExcludedGroupsShouldOverrideXml() {
runTest(null, "go", Arrays.asList(new String[] { "f1" }));
}
@Test
public void shouldRunBothMethods() {
runTest(null, null, Arrays.asList(new String[] { "f1", "f2" }));
}
private void runTest(String group, String excludedGroups, List<String> methods) {
XmlSuite s = createXmlSuite(getClass().getName());
XmlTest t = createXmlTest(s, "Test", OverrideSampleTest.class.getName());
TestNG tng = create();
if (group != null) tng.setGroups(group);
if (excludedGroups != null) tng.setExcludedGroups(excludedGroups);
tng.setXmlSuites(Arrays.asList(new XmlSuite[] { s }));
TestListenerAdapter tla = new TestListenerAdapter();
tng.addListener(tla);
tng.run();
assertTestResultsEqual(tla.getPassedTests(), methods);
}
}