我一直在努力找到一个明显的解决方案,解决链接代码无法运行JUnit TestRules的原因。
我创建了一个success case,其中TestRules执行,一个failure case显示TestRules失败的情况。
是否有人能够看到为什么没有拾取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
中看到。
有没有人有任何想法?
答案 0 :(得分:0)
似乎我正在使用Cucumber和Serenity,而Cucumber团队目前并不支持JUnit TestRules的哲学原因。这里希望他们改变主意:)