嵌套的testRunners:我可以运行分离测试的Classes吗?

时间:2019-03-27 12:55:30

标签: testing junit cucumber test-runner property-based-testing

背景

我正在使用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

0 个答案:

没有答案