фон
Я строю небольшую рамку, используя Cucumber и Junit-quickcheck.
Руководящие принципы требуют написания сценариев в огурце, и я хочу добавить возможность запуска тестов на основе свойств. С QuickTeory это работает нормально, но есть некоторые ошибки, и это поддерживается одним человеком, поэтому я бы хотел перейти на junit-quickcheck.
вопрос
Код работает нормально, но теперь два теста выполняются как один, и в отчете по огурцам их невозможно идентифицировать. Поэтому я хотел бы найти способ написать pbt-тесты в классе PBT (а не как класс для каждого теста!), А затем выполнить их с огурцом в качестве отдельных тестов.
Я полагаю, что должен быть способ использовать 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