我正在尝试使用 intellij idea 运行单独的 spock 单元测试。
考虑:
//其余代码
def“测试一些东西”(){
//下面的测试代码
}
在上面的测试中,当我转到测试主体和右侧上下文菜单时,我得到了两种Test Something
测试。一种是 grails 测试,另一种是 junit 测试。
引用this问题,接受的答案建议使用 jUnit runner。但是使用它,代码根本无法编译(可能是因为某些插件和其他类不可用)。
(我不确定,因为这是期望的行为,因为我只是运行一个单个测试,而不是所有测试。所以想知道为什么要编译所有类,包括不需要的插件类测试目标类。)
使用 grails runner,我检查配置,这里是屏幕截图:
所以那里的命令看起来没有问题。
但是运行时测试出现Test framework exit unexpectedly
错误。
我尝试从 grails 控制台(CMD 窗口)运行相同的命令,它运行时没有任何错误消息。
但是在检查输出的 html 文件(在 target/test-reports 中)时,我发现实际上没有运行任何测试!
那么这里发生了什么,为什么个别测试没有运行?
附言:
当我使用 test-app
命令运行所有测试时,测试按预期运行。只有个别(单元)测试没有运行。
最佳答案
为 Spock 的漂亮测试命名付出的部分代价是,您不能再指定要运行的单个测试。
这里有一些关于它的文章。第一个似乎很重要: Run a specific test in a single test class with Spock and Maven
这不是关于运行单个测试,而是有一些相关性并讨论了 Spock 的测试名称转换,加上 Peter Niederwieser 附和评论: Can TestNG see my Spock (JUnit) test results?
一个解决方法是使用 @IgnoreRest
注释。只需使用 @IgnoreRest
注释要运行的测试,然后指定要运行的测试类,只有注释的测试才会运行。 http://spockframework.github.io/spock/javadoc/1.0/spock/lang/IgnoreRest.html
关于java - 用于个人测试的 Grails 中的 Spock 单元测试在 intellij 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37152295/