下面列出了org.testng.TestNG#setXmlSuites ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private void setupSuites(TestNG testng) throws Exception {
switch (itCommand) {
case "suites":
List<String> suiteFiles = itProps.getSuiteFiles();
if (!CollectionUtils.isEmpty(suiteFiles)) {
testng.setTestSuites(suiteFiles);
}
break;
case "suiteurls":
List<String> suitePathes = itProps.getSuiteFiles();
testng.setXmlSuites(loadSuites(suitePathes));
break;
case CLEANUP_COMMAND:
cleanupUtil.cleanupDistroxes();
cleanupUtil.cleanupSdxes();
cleanupUtil.cleanupEnvironments();
cleanupUtil.cleanupCredentials();
break;
default:
LOG.info("Unknown command: {}", itCommand);
break;
}
}
@BeforeClass
public static void setUp() throws IOException {
resultsDir = Files.createTempDirectory(ALLURE_RESULTS);
AllureResultsUtils.setResultsDirectory(resultsDir.toFile());
List<XmlSuite> suites = new ArrayList<>();
for (ConfigMethodType type : ConfigMethodType.values()) {
suites.add(createSuite(type.getTitle()));
}
TestNG testNG = new TestNG();
testNG.setXmlSuites(suites);
testNG.setUseDefaultListeners(false);
testNG.run();
}
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 + "'");
}
}
}