Junit 仅运行@Theory注释测试一次,直到通过

Junit 仅运行@Theory注释测试一次,直到通过,junit,annotations,theory,exit,datapoint,Junit,Annotations,Theory,Exit,Datapoint,我的@Theroy课程为: @Datapoints data1, data 2 ..... data 10 and, @Theory testMethod (data1, data2, data3) { //do testing exit from testMethod once testing is passed } 我只想通过一次测试,但不想运行所有可能的数据点案例 显然,我只想测试一次,一旦通过,就退出到另一个测试 我不希望看到系统。退出()。。。因为我不是在退出jvm,而是在退出

我的@Theroy课程为:

@Datapoints data1, data 2 ..... data 10 and,

@Theory
testMethod (data1, data2, data3) {
 //do testing
 exit from testMethod once testing is passed
}
我只想通过一次测试,但不想运行所有可能的数据点案例

显然,我只想测试一次,一旦通过,就退出到另一个测试

我不希望看到系统。退出()。。。因为我不是在退出jvm,而是在退出@Theory测试 就是要退出

Thanks

使用“假定”,它将跳过测试而不报告失败。

对我不起作用,我的情况是:

boolean actual = false;
@Theory(nullsAccepted = false)
public void overlapIfFirstRangeEndsAfterSecondBegins(final Date start1,
        final Date end1, final Date start2, final Date end2) {
    // Assume ranges are valid
    Assume.assumeTrue(!actual);
    assumeThat(start1, before(end1));
    assumeThat(start2, before(end2));

    assumeThat(start1, onOrBefore(start2));
    assumeThat(end1,   onOrAfter(start2));

    actual = dateRangesOverlap(start1, end1, start2, end2);
    //this actual will be TRUE once when test is to be passed...then test must exit
}
测试用例继续运行

使用assumeTrue也会使测试用例失败。
谢谢

假设的工作方式是运行每个测试用例,但可能会被跳过。如果你的理论有4个参数,并且有10个或更多的数据点,这是一个非常大数量的可能的值组合传递给理论。与他们每个人都背道而驰的假设。我认为理论不是实现这一点的方法。您可能想考虑参数化。谢谢……这正是我所想的……在成功后,在所有的保证条件下,并且再次成功地在DATERangeSeRePopApple()中……这意味着第一个测试通过了,对……现在我想退出测试并继续另一个测试……看来理论在这里起了不好的作用。。。。
boolean actual = false;
@Theory(nullsAccepted = false)
public void overlapIfFirstRangeEndsAfterSecondBegins(final Date start1,
        final Date end1, final Date start2, final Date end2) {
    // Assume ranges are valid
    Assume.assumeTrue(!actual);
    assumeThat(start1, before(end1));
    assumeThat(start2, before(end2));

    assumeThat(start1, onOrBefore(start2));
    assumeThat(end1,   onOrAfter(start2));

    actual = dateRangesOverlap(start1, end1, start2, end2);
    //this actual will be TRUE once when test is to be passed...then test must exit
}