Java ParallelParameterized-如何以与输入相同的顺序并行保存每个输入的测试结果?

Java ParallelParameterized-如何以与输入相同的顺序并行保存每个输入的测试结果?,java,multithreading,unit-testing,junit,concurrency,Java,Multithreading,Unit Testing,Junit,Concurrency,我尝试运行此代码 我在每次运行中都会看到numberOfProcessedRequests==0,并且不会像我从类成员那里期望的那样递增 这是一个并行参数化测试 为什么它要为每个输入创建一个新的测试类实例 我看到ctor只被调用了一次 对于每个输入,是否应该有不同的方法并行运行测试,并且仍然保持结果的顺序与输入的顺序相同?JUnit,按设计。既然这似乎是你问题的核心,你能在最后一段中展开一点吗?那么为什么我在调试时会看到testClass构造函数RoutingResponseShortRegre

我尝试运行此代码

我在每次运行中都会看到numberOfProcessedRequests==0,并且不会像我从类成员那里期望的那样递增

这是一个并行参数化测试

为什么它要为每个输入创建一个新的测试类实例

我看到ctor只被调用了一次


对于每个输入,是否应该有不同的方法并行运行测试,并且仍然保持结果的顺序与输入的顺序相同?

JUnit,按设计。既然这似乎是你问题的核心,你能在最后一段中展开一点吗?那么为什么我在调试时会看到testClass构造函数RoutingResponseShortRegressionOneByOne被调用一次?关于我的最后一段:我想对1K输入行运行测试。测试计算结果。我想按输入的相同顺序保存结果。例如输入1,结果1。输入2,结果2。等等我认为我可以并行地完成这项工作,但仍然以某种方式保持结果的有序性。我可以创建一个固定大小的数组,因为我知道结果的大小。请不要在注释中提供其他信息。你应该回答你的问题,让问题本身变得更好。你可以假设几乎每一条评论都是要求你编辑你的问题,而不是作为另一条评论回复。很难说为什么你的测试构造函数只调用了一次,因为你发布的代码有限。也许你没有像你想象的那样把你的意见分成几部分?应该为每个输入数据调用一次构造函数。
@RunWith(ParallelParameterized.class)
public class RoutingResponseShortRegressionOneByOne {

    private int numberOfProcessedRequests;
    private Object currentRequestIndexLock = new Object();


    @Test
    public void compareNewResponseToBaselineReturnsNoLargeDifferences() throws IOException {

        int currentRequestIndex;
        synchronized (currentRequestIndexLock) {
            //currentRequestIndex = e2EResultShort.completeRoutingResponses.size();
            currentRequestIndex = numberOfProcessedRequests;
            numberOfProcessedRequests++;
        }