我一直在努力寻找一个明显的解决方案来解释为什么链接的代码无法运行 JUnit TestRules。
我创建了一个 success case TestRules 执行的位置,以及 failure case这显示了 TestRules 失败的情况。
有人能明白为什么测试规则没有被采纳吗?不仅仅是 Spring 的 TestRule 没有被采纳。好像都是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
中看到。
有人有什么想法吗?
最佳答案
看来我正在使用 Cucumber 和 Serenity,并且出于哲学原因,Cucumber 团队目前不支持 JUnit TestRules。希望他们改变主意:)
关于java - 为什么我的 Spring JUnit 测试规则没有运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34135455/