我有一个项目,其中包含大约50个junit测试。每个测试大约需要5-6分钟来运行,因为它试图断言一些数据,这些数据需要大约5-6分钟的时间才能在redshift中可用(测试在redshift中查找数据)。现在我正在尝试并行运行所有测试,并期望所有测试最多在15-20分钟内运行。我尝试使用test.runWith(){maxParallelForks}选项,但测试花费了一个多小时。这些测试都是独立的。有没有一种有效的方法来并行化它们?
注意:这是一个邻居测试,而不仅仅是junit。因此,我不能将结果模拟为从邻居系统之间的实际交互中得出的结果。
谢谢
下面是我正在使用的:
tasks.withType(Test) {
maxParallelForks = 50
}
我们的目标是让它们在最多20-25分钟内运行,但这需要一个多小时。
发布于 2019-04-25 13:50:15
test/resources
文件夹中创建一个名为junit-platform.properties
的文件:junit.jupiter.execution.parallel.enabled=false
junit.jupiter.execution.parallel.config.strategy=fixed
junit.jupiter.execution.parallel.config.fixed.parallelism=4
我有一个4核(没有超线程)。您还可以尝试dynamic
选项。
使用@Execution(ExecutionMode.CONCURRENT)
注释您的类的
这是关于这个主题的a great article。还有一个here。
我还尝试了并行测试执行,并得出了以下结论:
https://stackoverflow.com/questions/55838780
复制相似问题