【发布时间】:2014-01-07 16:24:00
【问题描述】:
最近我一直在尝试在 IntelliJ 中运行我的 spock 测试(它曾经运行良好,并且在故障功能上进行了很好的调试/特定测试重新运行),在过去的几个月里,我开始收到以下错误:
| Error Error executing script TestApp:
(class: com/company/MyServiceSpec, method: super$2$oldImpl signature:
(Ljava/lang/Object;)Ljava/lang/Object;)
Illegal use of nonvirtual function call (Use --stacktrace to see the full trace)
这是一个 spock 测试,可以从命令行单独(通过指定类)或在整个测试应用程序系列中正常运行。我在这个项目中进行的几乎所有 spock 和普通的旧单元或集成测试在 IntelliJ 中都出现了类似的失败。
我尝试过使用测试的运行功能(打开或关闭类路径、运行单个方法、整个测试类或整个测试系列),但没有运气来纠正这种情况。我还做了一个grails clean 并尝试从 IntelliJ 重新运行它们:看起来好像它工作过一次,我能够运行测试一段时间,但在做了一些工作后很快问题仍然存在。
我知道这是一个有点模糊的问题,但是有没有人遇到过类似的故障并找到了可靠的补救措施?我在 Grails 2.1 和 Spock 0.7 上,在 IntelliJ 12 和 13 中都存在同样的问题
【问题讨论】:
-
您是否有可能通过 IntelliJ 使用未针对这些类编译的不同 grails/groovy 版本运行测试?
-
我很确定我已经正确配置了它们(在项目结构下它被列为提供的依赖项)但我之前已经搞砸了,不过感谢您的建议!
-
Rob Fletcher 建议我尝试以 JUnit 的身份运行测试,我很快就会试一试!
标签: grails intellij-idea spock