Spock / Grails - Groovy:无法解析类grails.test.mixin.TestFor并且无法解析类spock.lang.Specification

时间:2015-12-10 14:08:49

标签: grails spock

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

为插件创建Spock测试与为主项目创建Spock测试有所不同。

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

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

}

我还尝试使用命令grails> refresh-dependencies -Dplugins.useInline=true 刷新依赖关系来刷新依赖关系。但仍然是同样的错误。

我应该使用main-project还是plugin-project运行单元测试用例。

如何排序此问题。

谢谢。

3 个答案:

答案 0 :(得分:1)

我在我工作的应用程序中为内联插件创​​建了大量Spock测试(单元和集成)。基本上,应用程序是一个shell和一些inplace-plugins - 应用程序本身很简单。

组织非常简单。每个应用程序中的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创建测试没什么特别之处。测试全部存在于应用程序中>测试> [整合| unit]文件夹(是的,我应该重构以使代码覆盖正常工作)。 适用于域类,控制器或服务。 (Grails 2.4.3 / 2.4.5)

import grails.test.mixin.TestFor
import grails.test.mixin.Mock
import spock.lang.specification
import spock.lang.Unroll

@TestFor(SomeService)
@Mock([OtherService])
class SomeService extends Specification {
    def "some method"() {
        given:
            // setup
        when:
            // action
        then:
            // test outcomes
        cleanup:
            // undo any metaClassing, etc
    }
}

答案 1 :(得分:0)

我有同样的错误。我的Spock单元测试工作,直到我尝试回滚一个不相关的插件的更新。我不确定如何,但IntelliJ不再认可我项目的任何插件。

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

  • 在资源管理器中,备份并删除文件夹C:\\[my project root]\\work\\projects\\[project name]
  • 在IntelliJ IDEA(15.0.4)中,Build->Rebuild Project
  • 然后File->Close Project并重新打开该项目。

最后一步终于让它运转了。以下是我尝试的其他所有内容,如果它本身不起作用:

  • grails clean
  • grails refresh-dependencies
  • 强制svn更新为HEAD
  • 在IntelliJ中,File->Invalidate Caches / Restart...

答案 2 :(得分:0)

添加到gradle:

testCompile "org.grails:grails-test-mixins:3.3.0"

来源: https://grails-plugins.github.io/grails-test-mixin-plugin/latest/guide/index.html