【发布时间】:2014-04-05 06:29:12
【问题描述】:
一位同事最近在我们团队的项目中引入了 Spock 单元测试,我在其 Eclipse 集成中遇到了一个烦人的问题:每当我们创建参数化测试并在其上使用 @Unroll 注释时,Eclipse JUnit 视图就会丢失与测试类关联并在“Unrooted Tests”下显示结果。
例如,这个测试类的结果:
package test
import spock.lang.Specification
import spock.lang.Unroll
class TestSpockTest extends Specification {
def "Not Unrolled Test"() {
when: "something"
then: "one equals one"
1 == 1
}
@Unroll
def "Unrolled Test #param"(Integer param) {
when: "something"
then: "a numer equals itself"
param == param
where:
param << [1, 2, 3]
}
}
这样显示:
如何让展开的测试用例(例如“展开的测试 1”)像“未展开的测试”一样显示在“test.TestSockTest”下?我的 Spock 测试是否有一些 Eclipse JUnit 插件可以理解的命名约定?
我正在使用:
- Eclipse 开普勒 SR1
- spock-core-0.7-groovy-2.0
- Jspresso Spock 插件 2.71
- Groovy-Eclipse 插件 2.8
- JUnit 4.8.2
【问题讨论】:
-
您是否也尝试过在类级别而不是方法级别的@Unroll?
-
是的。 @Unroll 是在类还是方法级别无关紧要,Eclipse JUnit 视图仍然显示相同的内容。
-
我看到了一个相关的bug in eclipse。可能就是这个原因。
-
Spock 也遇到了那个 Eclipse 错误(如果你使用空格),但是即使我从他们的名字中删除了空格,测试仍然显示为无根。
-
我已经为此提交了一份 Eclipse 错误报告:bugs.eclipse.org/bugs/show_bug.cgi?id=429606。如果你想看到这个问题,请投票给它。
标签: eclipse groovy junit spock junit-runner