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

时间:2014-03-27 04:52:25

标签: 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
}

我想要将测试完全传递一次,但不要运行所有可能的数据点情况。

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

我不希望System.exit()...因为我没有退出jvm,只是那个@Theory测试  是退出。

Thanks

2 个答案:

答案 0 :(得分:1)

boolean passed = false;

@Theory
public void testMethods(Object data){
    assumeTrue(!passed);

    // testing here

    passed = true;
}

使用假设,跳过测试而不报告失败。

答案 1 :(得分:-1)

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

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使得测试用例也失败了。 感谢