我目前有一些测试,它确实运行很长。在每次测试中,我总是一样的:如何并行化JUnit测试?
有一个循环创建一个新的对象(每次迭代都有不同的参数),做一些耗时的对象计算,并且在每次迭代结束时将结果与预期结果。
此循环中的每次迭代都是完全隔离的。我可以很容易地并行运行所有这200个非常耗时的迭代。但如何最好地做到这一点?
干杯, 洪堡
我目前有一些测试,它确实运行很长。在每次测试中,我总是一样的:如何并行化JUnit测试?
有一个循环创建一个新的对象(每次迭代都有不同的参数),做一些耗时的对象计算,并且在每次迭代结束时将结果与预期结果。
此循环中的每次迭代都是完全隔离的。我可以很容易地并行运行所有这200个非常耗时的迭代。但如何最好地做到这一点?
干杯, 洪堡
的Junit 4具有内置中并行处理。检查这个documentation。
除此之外,您可能需要考虑将所有重复迭代移动到静态设置方法中并注释为@BeforeClass。这将确保代码在整个生命周期中只运行一次。
@BeforeClass
public static void setup() {
//Move anything needs to run only once.
}
您必须创建Parameterized runner的自己修改。见http://jankesterblog.blogspot.de/2011/10/junit4-running-parallel-junit-classes.html
谢谢!我有几个问题: –
1.你的第一个链接说,“单个参数测试”允许返回Object []。在我的情况下,这总是会抛出一个错误:“必须返回一个数组的Iterable。” 如果我将这些参数封装在一个常规数组中,它就可以工作。 –
您需要将JUnit 4.12用于“单参数测试”。我假设你正在使用4.11。 –
图书馆JUnit Toolbox提供了一个ParallelParameterized亚军。
并行处理是Maven特性而不是JUnit特性。 –