В моем регрессионном наборе более 600 тестов. Все эти тесты имеют тег @RegressionTest. Смотрите ниже, как я бегу.
_start = LocalDateTime.now();
//see karate-config.js files for env options
_logger.info("karate.env = " + System.getProperty("karate.env"));
System.setProperty("karate.env", "test");
Results results = Runner.path("classpath:functional/Commercial/").tags("@RegressionTest").reportDir(reportDir).parallel(5);
generateReport(results.getReportDir());
assertEquals(0, results.getFailCount(), results.getErrorMessages());
Я думаю, что могу создать 1 тест и присвоить ему тег @smokeTest. Я хочу иметь возможность запустить этот тест первым и только в том случае, если этот тест пройден, запустить весь набор регрессии. Как я могу реализовать эту функциональность? Я использую Junit5 и Karate.runner.
Я думаю, что проще всего запустить один тест в самом JUnit, и если это не сработает, выдать исключение или пропустить фактические тесты.
Так что используйте Runner
два раза.
В противном случае считайте, что это не поддерживается напрямую в каратэ, но участие в коде приветствуется.
Также см. ответы на этот вопрос: Как перезапустить неудачные фичи в каратэ?