Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spock/Grails-Groovy:无法解析Grails.test.mixin.TestFor类,也无法解析Spock.lang.Specification类_Grails_Spock - Fatal编程技术网

Spock/Grails-Groovy:无法解析Grails.test.mixin.TestFor类,也无法解析Spock.lang.Specification类

Spock/Grails-Groovy:无法解析Grails.test.mixin.TestFor类,也无法解析Spock.lang.Specification类,grails,spock,Grails,Spock,我正在为我的插件project-plugin创建一个Spock测试,我的主要项目名称是main-project,它使用project-plugin作为插件。因此,当我为我的插件创建一个Spock测试时,它抛出上面的错误意味着它的警告projectplugin由于下面的类而出错 为插件创建Spock测试将不同于为主项目创建Spock测试 例如,我创建了一个新的示例项目,并为服务创建了spock测试,该测试工作正常,没有任何错误 import grails.test.mixin.TestFor im

我正在为我的插件
project-plugin
创建一个Spock测试,我的主要项目名称是
main-project
,它使用
project-plugin
作为插件。因此,当我为我的插件创建一个Spock测试时,它抛出上面的错误意味着它的警告
projectplugin
由于下面的类而出错

为插件创建Spock测试将不同于为主项目创建Spock测试

例如,我创建了一个新的示例项目,并为服务创建了spock测试,该测试工作正常,没有任何错误

import grails.test.mixin.TestFor
import spock.lang.Specification
@TestFor(DataImportService){

}
我还尝试使用命令
grails>refresh dependencies-Dplugins.useInline=true
dependencies refreshed来刷新依赖项。但仍然存在相同的错误

我应该使用
主项目
插件项目
运行单元测试用例吗

如何对这个问题进行排序


谢谢。

我已经为我工作的应用程序中的内联插件创建了许多Spock测试(单元和集成)。基本上,应用程序是一个外壳和一些内置插件——应用程序本身非常简单

组织相当简单。每个应用程序中的BuildConfig.groovy使用grails.plugin.location.plugin-name'='../../plugins/plugin-name'选择它所包含的插件

+- applications
|     |
|     +- app1
|     +- app2
|     +- app3
|
+- plugins
      |
      +- plugin1 
      +- plugin2 (there are > 30 plugins in total)
手动或通过IntelliJ IDE创建测试没有什么特别之处。这些测试都存在于应用程序>测试>[integration | unit]文件夹中(是的,我应该进行重构,以使代码覆盖率正常工作)。 适用于域类、控制器或服务。(Grails 2.4.3/2.4.5)


我也犯了同样的错误。我的Spock单元测试一直在运行,直到我尝试回滚一个无关插件的更新。我不知道怎么做,但IntelliJ不再识别我项目的任何插件

以下是我认为可以解决的问题:

  • 在资源管理器中,备份并删除文件夹
    C:\\[my project root]\\work\\projects\\[project name]
  • 在IntelliJ IDEA(15.0.4)中,
    Build->Rebuild Project
  • 然后
    文件->关闭项目
    并重新打开项目
最后一步终于奏效了。以下是我尝试过的所有其他方法,以防它们本身不起作用:

  • grails clean
  • grails刷新依赖项
  • 强制svn更新到头部
  • 在IntelliJ中,
    文件->使缓存无效/重新启动…
添加到渐变:

testCompile "org.grails:grails-test-mixins:3.3.0"
资料来源:

你的意思是说为project或pluginsI编写Spock测试没有什么区别我创建了一个新的示例项目并编写了Spock测试,它工作正常,但我的正式现有项目给出了类解析错误grails版本是什么,主项目的BuildConfig是什么样子的?可能有什么问题。我使用的是2.4.4,它和默认的一样,需要额外的插件
testCompile "org.grails:grails-test-mixins:3.3.0"