我一直在努力寻找一个显而易见的解决方案,以解决为什么链接的代码无法运行JUnit TestRules的问题。

我创建了一个执行TestRules的success case,并创建了一个显示TestRules失败的情况的failure case

有人能看到为什么没有提取TestRules吗?不只是Spring的TestRule没有被使用。正如MyTestRule.java在源代码中所展示的,这似乎是所有TestRules。

在成功案例上运行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中看到。

有人有什么想法吗?

最佳答案

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

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

07-24 15:32