我正在为我的插件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
运行单元测试用例。
如何排序此问题。
谢谢。
答案 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]
Build->Rebuild Project
File->Close Project
并重新打开该项目。最后一步终于让它运转了。以下是我尝试的其他所有内容,如果它本身不起作用:
grails clean
grails refresh-dependencies
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