【问题标题】:Intelli-J can't run spock tests? (Unable to attach test reporter...)Intellij 无法运行 spock 测试? (无法附加测试报告者...)
【发布时间】:2012-03-30 14:50:25
【问题描述】:
我正在尝试在 1.3.7 中使用 grails spock 插件。我可以通过grails test-app :spock 从终端运行测试,但是当我尝试从 Intelli-J 中运行 ControllerSpec 测试时,我得到了unable to attach test reporter to test framework or test framework quit unexpectedly。
有没有人通过 Intelli-J 成功运行 grails spock 测试?
【问题讨论】:
标签:
grails
intellij-idea
groovy
spock
【解决方案1】:
是的,我有,我没有任何问题。唯一要记住的是,当您右键单击 Spec 类时,选择正确的 intelliJ 运行器。所以:
- 右键类
- 运行
- 选择 jUnit 图标,而不是 grails 图标
【解决方案2】:
当我遇到此错误消息(...无法附加测试报告者...)时,我通常会在某处出现Groovy 语法错误,而IntelliJ 并未如此显示。这是 Groovy 极端语法灵活性的缺点。
【解决方案3】:
我遇到了同样的问题“无法将测试报告附加到测试框架或测试框架意外退出”。
发生这种情况是因为我的 jUnit *.groovy 类位于文件夹 \com\myproject\app 中,但在此类中,包设置为“package com.myprojec.app.subpacakge”。如您所见,包和文件夹的值不同,我打破了惯例。
当我检查并更正类的包和文件夹时,我看到了绿色测试。
【解决方案4】:
我刚刚遇到了类似的问题。原因原来是类名与文件名不同。不改文件名不小心重命名了类(可能是忘记使用IntelliJ的重命名功能了?)
【解决方案5】:
不确定答案是否相关,但这将在 Intellij 中发生。当我从 TestNG 切换回 JUnit 框架时,我遇到了同样的问题。
按照这些步骤我已经很容易解决了
1. Select the class file
2. From Top Menu Panel Click Run > Edit Configurations
3. Select the framework which you want.
就我而言,我选择了JUnit,错误消失了。
【解决方案6】:
(我在 grails 2.4.5 中的经验)
对于那些遇到这个问题但仍然卡住的人,我想我会提到一个如果你不通过命令行创建测试很容易错过的问题。
Spock 测试文件(和它们的类名)似乎必须以单词“Spec”作为后缀。
例如,FakeControllerSpec.groovy:
...
@TestFor(FakeController)
class FakeControllerSpec extends Specification {
...
}
如果此时 intellij 确信您的测试是 junit 测试(或 Spock 以外的其他框架),您需要在再次运行测试之前从 Run > editConfigurations 中删除配置。