为什么我的 Spring JUnit 测试规则不是 运行?

Why is my Spring JUnit Test Rule not running?

我一直在努力寻找一个明显的解决方案来解决为什么链接代码不会 运行 JUnit TestRules。

我创建了一个 success case where TestRules execute, and a failure case 来显示 TestRules 失败的情况。

有人能看出为什么 TestRules 没有被提取吗?不只是 Spring 的 TestRule 没有被提取。好像都是TestRules,源码中MyTestRule.java演示

运行 mvn clean install 在成功案例中,将看到所有测试都通过。但是 运行ning 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没有被捡到的结果,可以在测试class net.serenitybdd.demos.acceptance.CalculateResults.

中看到

有人有什么想法吗?

看来我正在使用带有 Serenity 的 Cucumber,而 Cucumber 团队目前出于哲学原因不支持 JUnit TestRules。希望他们改变主意:)

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