java - 用于个人测试的 Grails 中的 Spock 单元测试在 intellij 中不起作用

标签 java unit-testing grails intellij-idea spock

我正在尝试使用 intellij idea 运行单独的 spock 单元测试。

考虑: //其余代码 def“测试一些东西”(){ //下面的测试代码 }

在上面的测试中,当我转到测试主体和右侧上下文菜单时,我得到了两种Test Something 测试。一种是 grails 测试,另一种是 junit 测试。

引用this问题,接受的答案建议使用 jUnit runner。但是使用它,代码根本无法编译(可能是因为某些插件和其他类不可用)。

(我不确定,因为这是期望的行为,因为我只是运行一个单个测试,而不是所有测试。所以想知道为什么要编译所有类,包括不需要的插件类测试目标类。)

使用 grails runner,我检查配置,这里是屏幕截图: enter image description here

所以那里的命令看起来没有问题。

但是运行时测试出现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/

相关文章:

java - 在 SQL 中运行的准备好的语句中存在语法错误

java - 在独立的 Java 应用程序中使用相同的 log4j 记录器

java - DOM:如何读取子节点?

iphone - 对具有许多对象的核心数据进行单元测试

objective-c - 将 Swift 单元测试添加到混合语言 Xcode 项目

grails - 在域类中添加 getter 方法后出错

java - 字节码生成的访问对象与 GenerationMethodAccessor

java - 如何使用参数模拟 jdbcTemplate.query (Object[]{})

mongodb - 从 Grails 应用程序更新 Mongo 文档字段

jquery - 在 Grails 中使用 Twitter bootstrap,看起来不一样