Maven并行测试输出

moo*_*mid 7 java maven

当我设置我的Maven构建以并行运行我的集成测试时,我看到:

01:31:47 -------------------------------------------------------
01:31:47  T E S T S
01:31:47 -------------------------------------------------------
01:31:48 Concurrency config is parallel='classes', perCoreThreadCount=true, threadCount=20, useUnlimitedThreads=false
Run Code Online (Sandbox Code Playgroud)

但后来我没有看到任何测试的进展.最终,它们全部完成,输出一下子全部被丢弃.

01:41:42 Running com.my.test.TestClass
01:41:42 Tests run: 9, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 69.706 sec
....
Run Code Online (Sandbox Code Playgroud)

该测试类在一分钟后完成,但直到10分钟后所有测试结束才输出.

如何在完成输出后获得每个类的结果?否则很难理解构建的进度.

Mar*_*nik 1

希望我能回答你的问题。我认为这是因为并行运行的测试无法真正使用相同的控制台来通知自己的进度,从技术上讲不是这样,但从概念上讲它并没有真正意义。由于 Maven 同时处理模块,因此同时运行的 2 个测试可能会“共享”控制台。你只会在输出中得到垃圾。

因此,我想您应该只查看控制台中的总体结果,然后查看每个模块的报告。

Surefire 插件负责运行测试,为每个测试生成报告。

还有Surefire 报告插件

希望这可以帮助

  • 事实上,这是完全有道理的。您可能只是报告简单的事情,例如“测试完成”,并且只是显示正在运行的测试的心跳。 (3认同)