【问题标题】:Eclipse cannot find groovy class for Spock/Junit testEclipse 找不到用于 Spock/Junit 测试的 groovy 类
【发布时间】:2018-04-06 19:18:42
【问题描述】:

我正在尝试在 Eclipse 中使用 spock,在尝试运行测试时,我已在 intelliJ 中成功运行,但遇到了一个问题。我将我的类命名为与我的文件名不同的名称,因此 eclipse 无法运行 junit 测试,而是给出了这个错误: "启动配置的输入类型不存在。"

经过一番谷歌搜索后,我无处可去,决定到处玩,发现如果我执行所有测试,它会运行良好,即使我更改类名以匹配文件名,它也可以工作。有没有办法配置 eclipse/junit 以便能够在与文件名不匹配的 groovy 类上运行测试?

HelloWorld.groovy:

import spock.lang.*

class MyFirstSpockTest extends spock.lang.Specification {

def "length of Spock's and his friends' names"() {
    expect:
    name.size() == length

    where:
    name     | length
    "Spock"  | 5
    "Kirk"   | 4
    "Scotty" | 6
}

def "basic test"() {
    expect:
    Math.min(a, b) == c

    where:
    a | b || c
    3 | 7 || 7   // Will fail here
    5 | 4 || 4   // Will pass
    9 | 9 || 9   // Will pass
}

def "persons name tells you gender"() {
    expect:
    person.getGender() == gender

    where:
    person                    || gender
    new Person(name: "Fred")  || "Male"
    new Person(name: "Wilma") || "Female"
}

static class Person {
    String name

    String getGender() {
        name.equals("Fred") ? "Male" : "Female"
    }
}
}

【问题讨论】:

  • 不要这样做。这违反了所有惯例。
  • ....我不记得问我是否应该这样做或约定,但是...谢谢?我的意思是,我无法做到这一点可能暗示了潜在的配置问题,但感谢上帝,您确认了关于我显然正在学习和使用的技术的最合乎逻辑的结论。
  • 嗯,问题出在电脑前面。所以不管你有没有要求,我强烈建议你听从@chrylis给你的建议。
  • @kriegaex 很公平,我的反应有点强烈,我只是觉得这个建议毫无帮助。现在的事实是,我的 Eclipse 没有正确支持 groovy 的基本功能。这听起来像是我的问题只是我没有遵循命名约定吗?
  • IMO Eclipse 无论如何都是垃圾。我只使用它是因为它具有良好的 AspectJ 支持。在所有其他情况下,我更喜欢 IDEA。我什至无法在 Eclipse Oxygen 中获得 Groovy 支持,而且每次我想在 Eclipse 中安装更新时都会出现一些冲突,导致无法安装更新。从最早的日子开始,Eclipse 就是这样,并且仍然存在。 Eclipse 平台开发人员的耻辱。 OSGi 插件概念在理论上可能很好,但实际上市场从不包含任何东西的最新版本,并且其他存储库与之冲突。

标签: java eclipse unit-testing junit4 spock


【解决方案1】:

主代码树和测试代码树的根都需要在类路径设置中。为此,在 Package Explorer 窗口中,右键单击项目名称,从菜单中选择“Build Path”,然后选择“Configure Build Path”,选择 Source 选项卡并确保您的主代码和测试代码目录都是列出。如果没有列出测试代码目录,请添加。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-07
    • 2021-06-11
    • 1970-01-01
    • 2020-12-01
    • 1970-01-01
    • 2016-07-13
    • 2013-12-02
    • 1970-01-01
    相关资源
    最近更新 更多