我创建一个斯波克测试我的插件project-plugin和我的主要项目名称main-project被用project-plugin作为一个插件.因此,当我为我的插件创建Spock测试时,抛出上面的错误意味着它的警告project-plugin因为下面的类而有错误.
为插件创建Spock测试与为主项目创建Spock测试有所不同.
例如,我创建了一个新的示例项目,并为服务创建了spock测试,该测试没有任何错误.
import grails.test.mixin.TestFor
import spock.lang.Specification
@TestFor(DataImportService){
}
Run Code Online (Sandbox Code Playgroud)
我还尝试使用命令grails> refresh-dependencies -Dplugins.useInline=true 依赖刷新刷新依赖关系.但仍然是同样的错误.
我应该用main-project或运行我的单元测试用例plugin-project.
如何排序这个问题.
谢谢.
我已经为我所处理的应用程序中的内联插件创建了许多 Spock 测试(单元和集成)。基本上,该应用程序是一个外壳和一些就地插件——应用程序本身非常简单。
组织非常简单。每个应用程序中的 BuildConfig.groovy 使用 grails.plugin.location.'plugin-name' = '../../plugins/plugin-name' 选择其组成的插件
+- applications
| |
| +- app1
| +- app2
| +- app3
|
+- plugins
|
+- plugin1
+- plugin2 (there are > 30 plugins in total)
Run Code Online (Sandbox Code Playgroud)
手动或通过 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
}
}
Run Code Online (Sandbox Code Playgroud)