我一直在努力寻找一个显而易见的解决方案,以解决为什么链接的代码无法运行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