背景
我正在使用Cucumber和Junit-quickcheck构建一个小框架。 准则要求用黄瓜写场景,我想增加运行基于属性的测试的可能性。使用quicktheories可以很好地运行,但是这里存在一些错误,并且由一个人维护,因此我想切换到junit-quickcheck。
问题
该代码可以正常工作,但是现在可以将两个测试作为一个运行,并且在报告中无法识别它们。因此,我想找到一种方法来在PBT类中编写pbt-tests(而不是每个测试的类!),然后以黄瓜作为单独的测试执行它们。
我想也许应该有一种使用TestClass的方法,但是我一直无法使它工作。
这是我运行的代码,但仅描述如下:
public class Steps implements En {
public Scenario scenario;
}
public Steps() {
Given("^I exeute a pbt$", () -> {
System.out.println("Lets run the pbt");
Result res = JUnitCore.runClasses(PBT.class);
assertThat(res.getFailures().toString(), res.wasSuccessful(), equalTo(true));
});
}
}
和:
@RunWith(JUnitQuickcheck.class)
public class PBT {
@Property public void concatenationLength(String s1, String s2) {
assertEquals("nahh", s1.length() + s2.length(), (s1 + s2).length());
}
@Property public void reverseTwice(String str){
assertThat(new StringBuilder(str).reverse().reverse().toString(), equalTo(str));
}
}
给出以下结果:
Running steps.TestRunner
Feature: PBT
Lets run the pbt
@PBT
Scenario: First example # PBT.feature:3
Given I exeute a pbt # Steps.java:40
1 Scenarios (1 passed)
1 Steps (1 passed)
0m0.597s