junit参数化测试不按顺序输出结果

junit parameterized test does not output result in sequence

我正在使用 junit 测试具有不同参数的构造函数。代码 运行 没问题。但是输出结果是随机的。

public class Meetup {
public Meetup(int N) {
    if(N <= 0) { throw  new IllegalArgumentException();}
    System.out.println("Meetup is created !");
}

}

@RunWith(Parameterized.class)
public class MeetupTest {
    private int N;
    @Parameterized.Parameters
    public static List<Object[]> data(){
        return Arrays.asList(new Object[][]{
                {0},{1},{2},{-3},{4},{-5}
        });
    }    
    public MeetupTest(int N) {
        this.N = N;//break point
    }    
    @Test
    public void testMeetup(){
        System.out.println("parameter: " + N);
        new Meetup(N);
    }
}

如果我 运行 MeetupTest,我得到以下结果(随机序列):

parameter: 0
java.lang.IllegalArgumentException
java.lang.IllegalArgumentException
parameter: 4
Meetup is created !
parameter: -5
java.lang.IllegalArgumentException
parameter: 1
Meetup is created !
parameter: 2
Meetup is created !
parameter: -3

这是我期待的结果。但我必须 运行 调试模式下的代码(在 this.N = N 处设置断点)。

parameter: 0
java.lang.IllegalArgumentException
parameter: 1
Meetup is created !
parameter: 2
Meetup is created !
parameter: -3
java.lang.IllegalArgumentException
parameter: 4
Meetup is created !
parameter: -5
java.lang.IllegalArgumentException

如何解决这个问题?谢谢!

这不是问题。

参数化测试是关于使用多个输入测试完全相同的功能。这些应该是独立的,顺序无关紧要。