最近我一直在尝试在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中都有同样的问题
答案 0 :(得分:3)
我设法解决了这个问题,在我的配置中添加了以下env变量:
_JAVA_OPTIONS='-Xverify:none'
答案 1 :(得分:0)
首先检查您的配置并清除您已经运行但现在失败的测试。您可以将测试作为JUnit运行,现在当您再次运行它们时,它们将默认此行为。
注意:您可以通过命令行运行测试来确定是否存在此问题(例如grails test-app unit com.yourPackage.Whatever )如果它们按预期通过,请按照以下步骤操作在IntelliJ中清除已保存的测试配置
IntelliJ步骤