首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我如何阻止@展开的Spock测试在Eclipse视图中显示为“un根测试”?

我如何阻止@展开的Spock测试在Eclipse视图中显示为“un根测试”?
EN

Stack Overflow用户
提问于 2014-03-03 23:30:08
回答 1查看 2.6K关注 0票数 2

最近,一位同事将Spock单元测试引入到我们团队的项目中,我对它的Eclipse集成遇到了一个恼人的问题:每当我们创建参数化测试并在其上使用@Unroll注释时,Eclipse视图就会失去与测试类的关联,并在“un根测试”下显示结果。

例如,这个测试类的结果:

代码语言:javascript
运行
复制
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插件能够理解的吗?

我在用:

  • 日食开普勒SR1
  • spock-core-0.7-groovy-2.0
  • Jspresso Spock插件2.71
  • Groovy-Eclipse插件2.8
  • JUnit 4.8.2
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-04 07:22:53

这是一个众所周知的问题,因为史波克无法(通过其JUnit外观)预先告诉Eclipse多少测试方法将运行,以及它们的名称。(在数据驱动的测试中,这两个方面都是动态的。预先向Eclipse报告的内容与不使用@Unroll时相同。将此与测试运行期间报告的内容相关联时,Eclipse会感到困惑。)

我想不出在斯波克这边解决这个问题的好办法。我曾经考虑过一些方法,比如在Eclipse中运行时添加一些难看的启发式方法或者两次执行测试,但是没有一个是令人信服的。一个更理想的解决方案是改进Eclipse插件,以更好地处理这种情况,这也可能出现在许多其他JUnit兼容的测试框架中。

如果无法接受当前的输出,请执行以下几个步骤:

  • Eclipse issue tracker中提交一个改进请求,并要求Spock forum上的每个人投票支持它。
  • 不要使用@Unroll。(它只影响报告,而不影响执行。它被选择加入的一个原因是有些IDE对此有问题。)
  • 切换到IntelliJ IDEA,它提供了比Eclipse、JUnit和Spock更好的支持。
  • 把斯波克介绍给你的同事。:-)
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22159793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档