要通过gradle并行运行套件testng,请制作一个TestExecutor,它可以在gradle中运行
test {
useTestNG() {
}
include("**/TestExecutor.class")
}
TestExecutor从目录并行运行套件xml文件
public class TestExecutor {
private static final String SUITE_DIR = "suites/";
private static final Logger LOG = LogManager.getLogger(TestExecutor.class.getName());
@Test(testName = "TEST EXECUTOR")
public void execute() {
try (Stream<Path> walk = Files.walk(Paths.get(SUITE_DIR))) {
List<String> suites = walk.filter(Files::isRegularFile)
.map(Path::toString).collect(Collectors.toList());
TestNG testNg = new TestNG();
testNg.setSuiteThreadPoolSize(suites.size());
testNg.setTestSuites(suites);
testNg.run();
} catch (IOException e) {
LOG.error("fail to load test suite conf", e);
}
}
}
启动并运行测试后,如果使用命令生成了诱人报告
./gradlew allureReport
该报告显示一个套件,而不是套件中的所有测试
github上的示例项目-https://github.com/alstafeev/allure-test
为什么会生成错误的诱惑报告?
也许还有另一种使用gradle并行运行xml套件的方法吗?