Почему мое правило тестирования Spring JUnit не работает?

Я изо всех сил пытался найти очевидное решение, почему связанный код не запускает JUnit TestRules.

Я создал пример успеха, в котором выполняются TestRules, и случай отказа, который показывает ситуацию, когда TestRules не работает.

Кто-нибудь может понять, почему TestRules не подбираются? Дело не только в том, что TestRule Spring не используется. Кажется, это все TestRules, как показано MyTestRule.java в исходном коде.

Если запустить mvn clean install в случае успеха, все тесты пройдут успешно. Однако выполнение mvn clean install в случае сбоя приведет к следующему сбою:

    Tests run: 13, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 1.9 sec <<< FAILURE! - in net.serenitybdd.demos.acceptance.CalculateResults
net.serenitybdd.demos.acceptance.CalculateResults  Time elapsed: 1.454 sec  <<< FAILURE!
java.lang.AssertionError: expected:<3> but was:<1>
        at org.junit.Assert.fail(Assert.java:88)
        at org.junit.Assert.failNotEquals(Assert.java:743)
        at org.junit.Assert.assertEquals(Assert.java:118)
        at org.junit.Assert.assertEquals(Assert.java:555)
        at org.junit.Assert.assertEquals(Assert.java:542)
        at net.serenitybdd.demos.acceptance.CalculateResults.test(CalculateResults.java:60)


Results :

Failed tests:
  CalculateResults.test:60 expected:<3> but was:<1>

Tests run: 13, Failures: 1, Errors: 0, Skipped: 0

Это результат Spring SpringMethodRule не обрабатывается, что можно увидеть в тестовом классе net.serenitybdd.demos.acceptance.CalculateResults.

У кого-нибудь есть какие-либо идеи?


person John Deverall    schedule 07.12.2015    source источник
comment
Добавьте сюда код в виде текста, а не в виде ссылки.   -  person Jens    schedule 07.12.2015
comment
Я немного привел вопрос в порядок, но это целые тестовые примеры, поэтому в данном случае нет смысла добавлять весь соответствующий код. Проще использовать через github.   -  person John Deverall    schedule 07.12.2015


Ответы (1)


Кажется, я использую Cucumber с Serenity, а команда Cucumber в настоящее время не поддерживает JUnit TestRules по философским причинам. Надеюсь, они передумают :)

См. https://github.com/cucumber/cucumber-jvm/issues/894

person John Deverall    schedule 07.12.2015