如何并行化JUnit测试?

如何并行化JUnit测试?,junit,parallel-processing,Junit,Parallel Processing,我目前有两个测试,运行时间很长。在每次测试中,我总是做同样的事情: 有一个循环,它创建一个新对象(每次迭代使用不同的参数),对该对象进行一些耗时的计算,并在每次迭代结束时将结果与预期结果进行比较 这个循环中的每个迭代都是完全隔离的。我可以轻松地并行运行所有这200个非常耗时的迭代。但如何最好地做到这一点 干杯, AvHJUnit4具有内置并行处理。看看这个 除此之外,您可能需要考虑将所有重复迭代移动到静态设置方法中,并将其注释为@ BeeExpLASS。这将确保代码在整个生命周期中只运行一次 @

我目前有两个测试,运行时间很长。在每次测试中,我总是做同样的事情:

有一个循环,它创建一个新对象(每次迭代使用不同的参数),对该对象进行一些耗时的计算,并在每次迭代结束时将结果与预期结果进行比较

这个循环中的每个迭代都是完全隔离的。我可以轻松地并行运行所有这200个非常耗时的迭代。但如何最好地做到这一点

干杯,
AvH

JUnit4具有内置并行处理。看看这个

除此之外,您可能需要考虑将所有重复迭代移动到静态设置方法中,并将其注释为@ BeeExpLASS。这将确保代码在整个生命周期中只运行一次

@BeforeClass
public static void setup() {
     //Move anything needs to run only once.
}

您必须创建自己对的修改。请参见

图书馆提供跑步者。

谢谢!我有几个问题:1。您的第一个链接说,“使用单参数测试”允许返回对象[]。在我的例子中,这总是抛出一个错误,说:“必须返回数组的Iterable。”如果我将参数包装在ANDIONAL数组中,它就会工作。您需要JUnit 4.12用于“使用单个参数的测试”。我想你使用的是4.11。我注意到了一些奇怪的事情:1。在Parameters annotated data()方法之后调用BeforeClass annotated static setup()方法。这是预期的吗?2.我在带测试注释的方法中进行了一些System.out和System.err调用。在我的实验中,它表明,对于5个参数,测试注释方法实际上没有被调用5次。打印输出显示它被调用了7到11次,这意味着一些测试被执行了两次。这是怎么回事?也许这只是System.out和System.err如何工作的一个人工制品?可能测试只执行了5次,打印输出错误?我使用了System.out.flush()和System.err.flush(),但没有解决多重打印输出问题。并行处理是Maven特性,而不是JUnit特性。