下面列出了org.testng.xml.XmlTest#setName ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public XmlSuite constructXmlSuiteForDistribution(List<String> tests,
Map<String, List<Method>> methods,
String suiteName,
String category,
int deviceCount) {
XmlSuite suite = new XmlSuite();
suite.setName(suiteName);
suite.setThreadCount(deviceCount);
suite.setParallel(ParallelMode.CLASSES);
suite.setVerbose(2);
listeners.add("com.appium.manager.AppiumParallelMethodTestListener");
listeners.add("com.appium.utils.RetryListener");
include(listeners, LISTENERS);
suite.setListeners(listeners);
XmlTest test = new XmlTest(suite);
test.setName(category);
test.addParameter("device", "");
include(groupsExclude, EXCLUDE_GROUPS);
include(groupsInclude, INCLUDE_GROUPS);
test.setIncludedGroups(groupsInclude);
test.setExcludedGroups(groupsExclude);
List<XmlClass> xmlClasses = writeXmlClass(tests, methods);
test.setXmlClasses(xmlClasses);
writeTestNGFile(suite);
return suite;
}
public XmlSuite constructXmlSuiteForParallelCucumber(
int deviceCount, List<AppiumDevice> deviceSerail) {
ArrayList<String> listeners = new ArrayList<>();
listeners.add("com.cucumber.listener.CucumberListener");
XmlSuite suite = new XmlSuite();
suite.setName("TestNG Forum");
suite.setThreadCount(deviceCount);
suite.setParallel(ParallelMode.TESTS);
suite.setVerbose(2);
suite.setListeners(listeners);
for (int i = 0; i < deviceCount; i++) {
XmlTest test = new XmlTest(suite);
test.setName("TestNG Test" + i);
test.setPreserveOrder(false);
test.addParameter("device", deviceSerail.get(i).getDevice().getUdid());
test.setPackages(getPackages());
}
return getXmlSuite(suite);
}
/**
* This will provide a test suite for TestNG which will be based on the package.
* It delegates any class inspection / reflection to TestNG.
*
* @return the XmlSuite for com.salesforce.dockerfileimageupdate.itest.tests.*
*/
private List<XmlSuite> getXmlSuites() {
XmlSuite suite = new XmlSuite();
suite.setName("Full Integration Test");
XmlTest test = new XmlTest(suite);
test.setName("all-tests");
XmlRun xmlRun = new XmlRun();
xmlRun.onInclude(test.getName());
List<XmlPackage> packages = new ArrayList<>();
packages.add(new XmlPackage("com.salesforce.dockerfileimageupdate.itest.tests.*"));
test.setXmlPackages(packages);
List<XmlSuite> suites = new ArrayList<>();
suites.add(suite);
return suites;
}
public XmlSuite constructXmlSuiteForParallel(String pack, List<String> testcases,
Map<String, List<Method>> methods,
String suiteName, String category,
int deviceCount,
List<AppiumDevice> deviceSerail) {
ArrayList<String> listeners = new ArrayList<>();
listeners.add("com.appium.manager.AppiumParallelTestListener");
listeners.add("com.appium.utils.RetryListener");
include(listeners, LISTENERS);
include(groupsInclude, INCLUDE_GROUPS);
include(groupsExclude, EXCLUDE_GROUPS);
XmlSuite suite = new XmlSuite();
suite.setName(suiteName);
suite.setThreadCount(deviceCount);
suite.setDataProviderThreadCount(deviceCount);
suite.setParallel(ParallelMode.TESTS);
suite.setVerbose(2);
suite.setListeners(listeners);
for (int i = 0; i < deviceCount; i++) {
XmlTest test = new XmlTest(suite);
test.setName(category + "-" + i);
test.setPreserveOrder(false);
test.addParameter("device", deviceSerail.get(i).getDevice().getUdid());
test.addParameter("hostName", deviceSerail.get(i).getHostName());
test.setIncludedGroups(groupsInclude);
test.setExcludedGroups(groupsExclude);
List<XmlClass> xmlClasses = writeXmlClass(testcases, methods);
test.setXmlClasses(xmlClasses);
}
writeTestNGFile(suite);
return suite;
}
public XmlSuite constructXmlSuiteDistributeCucumber(int deviceCount) {
ArrayList<String> listeners = new ArrayList<>();
listeners.add("com.cucumber.listener.CucumberListener");
XmlSuite suite = new XmlSuite();
suite.setName("TestNG Forum");
suite.setThreadCount(deviceCount);
suite.setParallel(ParallelMode.CLASSES);
suite.setVerbose(2);
suite.setListeners(listeners);
XmlTest test = new XmlTest(suite);
test.setName("TestNG Test");
test.addParameter("device", "");
test.setPackages(getPackages());
return getXmlSuite(suite);
}
public CreateGroups invoke() {
xmlClasses = writeXmlClass(tests, methods);
test = new XmlTest(suite);
test.setName(category);
test.addParameter("device", "");
include(groupsExclude, EXCLUDE_GROUPS);
test.setIncludedGroups(groupsInclude);
test.setExcludedGroups(groupsExclude);
writeXml = new ArrayList<>();
return this;
}
private XmlSuite createSuite() {
final XmlSuite suite = new XmlSuite();
suite.setName(this.clazz.getName());
suite.setSkipFailedInvocationCounts(true);
final XmlTest test = new XmlTest(suite);
test.setName(this.clazz.getName());
final XmlClass xclass = new XmlClass(this.clazz.getName());
test.setXmlClasses(Collections.singletonList(xclass));
if (!this.includedTestMethods.isEmpty()) {
final List<XmlInclude> xmlIncludedTestMethods = new ArrayList<>();
for (final String includedTestMethod : this.includedTestMethods) {
final XmlInclude includedMethod = new XmlInclude(includedTestMethod);
xmlIncludedTestMethods.add(includedMethod);
}
xclass.setIncludedMethods(xmlIncludedTestMethods);
}
if (!this.config.getExcludedGroups().isEmpty()) {
suite.setExcludedGroups(this.config.getExcludedGroups());
}
if (!this.config.getIncludedGroups().isEmpty()) {
suite.setIncludedGroups(this.config.getIncludedGroups());
}
return suite;
}
private static XmlSuite createSuite(String testName) {
XmlSuite suite = new XmlSuite();
suite.setName(SUITE_PREFIX + testName);
XmlTest test = new XmlTest(suite);
test.setName(testName);
List<XmlClass> classes = new ArrayList<>();
classes.add(new XmlClass(ConfigMethodsTest.class));
test.setXmlClasses(classes);
return suite;
}
private void addClassToXmlTest(String pkgAndClsName,String testName) {
XmlTest xmltest=new XmlTest();
XmlClass classe=new XmlClass(pkgAndClsName);
xmltest.setName(testName);
xmltest.setClasses(Arrays.asList(classe));
addTest(xmltest);
}
private void checkHealth(ISuite suite, String className, String[] methods) {
if (className.isEmpty()) {
return;
}
// create runtime XML suite for health check
XmlSuite xmlSuite = new XmlSuite();
xmlSuite.setName("HealthCheck XmlSuite - " + className);
XmlTest xmlTest = new XmlTest(xmlSuite);
xmlTest.setName("HealthCheck TestCase");
XmlClass xmlHealthCheckClass = new XmlClass();
xmlHealthCheckClass.setName(className);
// TestNG do not execute missed methods so we have to calulate expected
// methods count to handle potential mistakes in methods naming
int expectedMethodsCount = -1;
if (methods != null) {
// declare particular methods if they are provided
List<XmlInclude> methodsToRun = constructIncludes(methods);
expectedMethodsCount = methodsToRun.size();
xmlHealthCheckClass.setIncludedMethods(methodsToRun);
}
xmlTest.setXmlClasses(Arrays.asList(new XmlClass[] { xmlHealthCheckClass }));
xmlSuite.setTests(Arrays.asList(new XmlTest[] { xmlTest }));
LOGGER.info("HealthCheck '" + className + "' is started.");
LOGGER.debug("HealthCheck suite content:" + xmlSuite.toXml());
// Second TestNG process to run HealthCheck
TestNG testng = new TestNG();
testng.setXmlSuites(Arrays.asList(xmlSuite));
TestListenerAdapter tla = new TestListenerAdapter();
testng.addListener(tla);
testng.run();
synchronized (this) {
boolean passed = false;
if (expectedMethodsCount == -1) {
if (tla.getPassedTests().size() > 0 && tla.getFailedTests().size() == 0
&& tla.getSkippedTests().size() == 0) {
passed = true;
}
} else {
LOGGER.info("Expected passed tests count: " + expectedMethodsCount);
if (tla.getPassedTests().size() == expectedMethodsCount && tla.getFailedTests().size() == 0
&& tla.getSkippedTests().size() == 0) {
passed = true;
}
}
if (passed) {
LOGGER.info("HealthCheck suite '" + className + "' is finished successfully.");
} else {
throw new SkipException("Skip test(s) due to health check failures for '" + className + "'");
}
}
}