【发布时间】:2016-05-11 02:51:52
【问题描述】:
我正在尝试使用 intellij idea 运行单个 spock 单元测试。
考虑:
// rest of code
def "Test Something"() {
// test code below
}
在上面的测试中,当我进入测试主体和右侧上下文菜单时,我得到了Test Something 的两种测试。一个是grails测试,一个是junit测试。
参考this 问题,接受的答案建议使用jUnit runner。但是使用它,代码根本无法编译(可能是因为某些插件和其他类不可用)。
(我不确定,因为这是所需的行为,因为我只是运行 single 测试而不是所有测试。所以想知道为什么它编译所有类,包括不需要的插件类测试目标类。)
使用 grails runner,我检查了配置,下面是屏幕截图:
所以那里的命令看起来没什么问题。
但是运行测试给出Test framework quit unexpectedly错误。
我尝试从 grails 控制台(CMD 窗口)运行相同的命令,它运行时没有任何错误消息。
但在检查输出 html 文件时(在 target/test-reports 中),我发现实际上没有任何测试运行!
那么这里发生了什么,为什么没有单独的测试运行?
PS:
当我使用test-app 命令运行所有测试时,测试按预期运行。只有个别(单元)测试没有运行。
【问题讨论】:
-
嗯...什么 grails 版本、Intellij 版本等?我一直在 IntelliJ 2016.1、Grails 2.4.5 中运行 Spock 单元测试。右键单击测试方法,然后选择运行 Grails 版本。测试配置的格式看起来和你的一样。
-
我只在测试名称上使用引号。休息对我来说很好。
-
@railsdog 我在 intellij 15.0 上。我认为这种相同的配置过去一直对我有用。但现在它根本不适用于此应用程序中的任何测试!对我来说似乎是一个奇怪的问题。此外,由于 grails cmd 也没有运行单独的测试,因此问题可能出在 grails 或我的代码本身的某个地方!
-
@Mamun 默认来自 intellij。
标签: java unit-testing grails intellij-idea spock