blob: d0a83457a0171cf8c9327fd5a9228ad4935e39c6 [file] [log] [blame]
package test.override;
import org.testng.Assert;
import org.testng.TestListenerAdapter;
import org.testng.TestNG;
import org.testng.annotations.Test;
import org.testng.internal.Utils;
import org.xml.sax.SAXException;
import test.SimpleBaseTest;
import javax.xml.parsers.ParserConfigurationException;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
/**
* Verify that command line switches override parameters in testng.xml.
*
* @author Cedric Beust <cedric@beust.com>
*/
public class OverrideTest extends SimpleBaseTest {
private void runTest(String include, String exclude) {
File f = Utils.createTempFile(
"<suite name=\"S\">"
+ " <test name=\"T\">"
+ " <classes>"
+ " <class name=\"test.override.OverrideSampleTest\" />"
+ " </classes>"
+ " </test>"
+ "</suite>"
);
TestNG tng = create();
TestListenerAdapter tla = new TestListenerAdapter();
tng.addListener(tla);
if (include != null) tng.setGroups(include);
if (exclude != null) tng.setExcludedGroups(exclude);
tng.setTestSuites(Arrays.asList(f.getAbsolutePath()));
tng.run();
Assert.assertEquals(tla.getPassedTests().size(), 1);
}
@Test(description = "Override -groups")
public void overrideIncludeShouldWork()
throws ParserConfigurationException, SAXException, IOException {
runTest("goodGroup", null);
}
@Test(description = "Override -excludegroups")
public void overrideExcludeShouldWork()
throws ParserConfigurationException, SAXException, IOException {
runTest(null, "badGroup");
}
@Test(description = "Override -groups and -excludegroups")
public void overrideIncludeAndExcludeShouldWork()
throws ParserConfigurationException, SAXException, IOException {
runTest("goodGroup", "badGroup");
}
}