【发布时间】: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