我想开发一个独立的测试解决方案,jar
它可以在 CI/CD 环境中使用,而无需一直重新编译。因此,我从一个包含几个库、一个 Spring Boot 应用程序和一个名为test-runner
.
从 GitLab CI/CD 中执行 fat-jar 是可行的,但我认为这只是它的前半部分。我想生成一个 JUnit XML 报告来输出测试结果。我从研究中了解到,我必须实现自己的记者。有没有更完整的例子?
测试跑者
public class Runner {
SummaryGeneratingListener listener = new SummaryGeneratingListener();
public void runOne() {
LauncherDiscoveryRequest request = LauncherDiscoveryRequestBuilder.request()
.selectors(selectClass(MyTest.class)).build();
Launcher launcher = LauncherFactory.create();
TestPlan testPlan = launcher.discover(request);
launcher.registerTestExecutionListeners(listener);
launcher.execute(testPlan);
}
public static void resultReport(Result result) {
System.out.println("Finished. Result: Failures: " + result.getFailureCount() + ". Ignored: "
+ result.getIgnoreCount() + ". Tests run: " + result.getRunCount() + ". Time: "
+ result.getRunTime() + "ms.");
}
public static void main(String[] args) {
Runner runner = new Runner();
runner.runOne();
TestExecutionSummary summary = runner.listener.getSummary();
summary.printTo(new PrintWriter(System.out));
}
}
背景:我的测试解决方案是通用的,并使用配置文件来参数化测试。所有测试与被测系统并行运行。因此,在此尝试之前,调用所有 gitlab-jobsmvn test
来执行测试并生成报告,但它每次运行都会重新编译所有内容。我想加快速度。