Для запуска пакета testng параллельно через gradle, создал 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
Почему создается неверный отчет об очаровании?
Может быть, есть другой способ запустить xml Suite параллельно с использованием gradle?