List<XmlSuite> suites = new ArrayList<XmlSuite>();
XmlSuite suite = new XmlSuite();
List<XmlTest> tests = new ArrayList<XmlTest>();
XmlTest test = new XmlTest();
List<XmlClass> classes = new ArrayList<XmlClass>();
XmlClass clazz = new XmlClass(Bar.class);
classes.add(clazz);
test.setXmlClasses(classes);
test.setSuite(suite);
test.setName("Mahadevan");
tests.add(test);
suite.setTests(tests);
suite.setName("Krishnan");
suites.add(suite);
suite.setTests(tests);
testng.setXmlSuites(suites);
testng.setGroups("runMe");
testng.run();
}
public class Bar {
@Test(groups = "runMe")
public void foo() {
System.out.print("I am foo()");
}
@Test
public void bar() {
System.out.println("I am bar()");
}
}
}
Here's the output :
[TestNG] Running:
Command line suite
I am foo()
===============================================
Krishnan
Total tests run: 1, Failures: 0, Skips: 0
===============================================
Variant #2 : using setIncludedMethods()
package raw.code;
import java.util.ArrayList;
import java.util.List;
import org.testng.TestNG;
import org.testng.annotations.Test;
import org.testng.xml.XmlClass;
import org.testng.xml.XmlInclude;
import org.testng.xml.XmlSuite;
import org.testng.xml.XmlTest;
public class SampleClass {
public static void main(String[] args) {
// defining which methods to execute
XmlInclude include = new XmlInclude("bar");
List<XmlInclude> includedMethods = new ArrayList<XmlInclude>();
includedMethods.add(include);
// Adding the methods to run to XmlClasses
XmlClass clazz = new XmlClass(Bar.class);
clazz.setIncludedMethods(includedMethods);
List<XmlClass> classes = new ArrayList<XmlClass>();
classes.add(clazz);
// Adding the list of classes to a test
List<XmlSuite> suites = new ArrayList<XmlSuite>();
XmlSuite suite = new XmlSuite();
List<XmlTest> tests = new ArrayList<XmlTest>();
XmlTest test = new XmlTest();
test.setXmlClasses(classes);
test.setSuite(suite);
test.setName("Mahadevan");
tests.add(test);
suite.setTests(tests);
suite.setName("Krishnan");
suites.add(suite);
suite.setTests(tests);