在Intellij中为Java项目添加Spock测试

7
我有一个在Intellij 12中设置好的Java项目,现在想要添加一些Groovy类。我首先尝试添加一个简单的Spock测试类,但是当我右键点击该类时,并没有出现运行选项。
我查看了Intellij的配置,它正确地引入了groovy。此外,我可以编写一个使用Groovy类的Groovy脚本,而且它能够顺利运行,因此可以确定groovy已经正确安装。是否还需要其他配置才能特别运行Spock测试?

你的类路径上有Spock吗?运行Spock测试应该像运行JUnit测试一样。 - justin
感谢您的评论。是的,我在类路径上有spock-core-0.7-groovy-2.0,并且spock规范的导入已经解决了,所以看起来一切都正常。 - user1596371
1
没有其他事情需要做了。通常这很有效(我整天都在使用它)。如果不行,那么可能是 IntelliJ 中的故障,或者您在 IDE 类路径上有多个 Groovy(或 Spock)版本。 - Peter Niederwieser
3个回答

7
最简单的获取Spock及其所有依赖项的方法是从Maven库中添加库。
然后,如果您想允许批处理测试,则应将测试放置在标记为测试文件夹的文件夹中。
如果您将脚本放在未标记为测试或源文件夹的文件夹中,则无法运行它。
如果您看不到运行按钮,则看起来Idea不能识别该文件可运行,它不在源/测试根目录下,或者它的扩展名无效。

1
更简单的方法是使用 Gradle :-) - Alex Blakemore
@Alex 在这种情况下,你只需要做的是导入Spock,点击“新库”->“来自Maven”,在搜索框中输入几个单词即可。对于Gradle,您需要创建一个构建脚本,并从命令行或Idea的糟糕JetGradle中使用它。我喜欢Gradle,但在这种情况下,它是一个巨大的杀手锏。 - Seagull
很抱歉我不能使用Gradle。我在哪里可以找到“新库”?我在菜单或帮助中没有看到它。 - orbfish
对于其他查看此答案的人:1. 我的团队向我保证,您不想使用IntelliJ添加库,因为那样会使您的依赖项与maven构建不同步;2. 搜索框显示了数百万个库 - 我在其他地方发现您需要0.7-groovy-2.0。 - orbfish
@orbfish 是的,如果您已经有了Maven项目,则添加WIA库的想法是不可取的。相反,应该将Spock添加到Maven中。最新版本在这里,您可以通过链接找到导入示例。在您的情况下,应该在Maven中添加库,因为它是您的“模型”构建声明,并且Idea项目是从中生成的。 OP的问题是关于没有任何构建系统支持的项目。如果您仍然有问题,最好提出一个新的具体问题。这个问题不太一般 =) - Seagull
很有趣,现在我在另一家公司使用Gradle,却遇到了同样的问题。 - orbfish

4

您可以按以下步骤添加Spock插件:

  1. 下载jar文件。
  2. 在IDEA中,选择文件->设置->插件->从磁盘安装。选择下载的jar文件。

2

我之前也遇到了同样的问题,最终找到了这里。我发现自己忘记扩展 spock.lang.Specification。一旦我做了这个,运行选项就出现了。

只是为了帮助像我一样的 Spock 初学者,特此发布。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接