有谁知道如何从不同的 gradle 项目运行测试并仍然获得 emma 覆盖率报告数据?
这是我当前的布局:
Root/
settings.gradle (no explicit build.gradle - just defines all subprojects)
SubProjectA/
build.gradle
src/ (all real source is here)
SubProjectATest/
build.gradle
src/ (all testing code is here)
SubProjectB/ (similar structure as A)
SubProjectBTest/ (similar structure as ATest)
我目前正在使用 emma 插件,我想构建子项目A并运行所有测试子项目ATest从 build.gradle 中子项目A.
以下是我在 SubProjectA 的 build.gradle 中尝试过的一些内容
-
testCompile project(':SubProjectATest').sourceSets.test.classes
(正如本文所建议的 https://stackoverflow.com/questions/5144325/gradle-test-dependency),但我得到了一个错误“Could not find property 'sourceSets' on project
"
- 就是直接的
testCompile project(':SubProjectATest')
,但后来我得到“..SubProjectA/build/classes/test', not found
”以及“跳过任务”:SubProjectA:compileTestJava' as it has no source files.
"
-
只需添加一个源集,如下所示:
测试 {
爪哇{
srcDir '../SubProjectATest/src'
}
}
添加源集(选项 3)是唯一有效的选择,但这样做似乎很草率。有谁知道如何使用项目依赖项来做到这一点?
更新#1我还尝试了下面的答案之一来使用 test.dependsOn 并且测试确实运行,但是emma插件报告了以下内容:build/classes/test', not found
1.和2.只需将类添加到测试编译类路径即可。这对于要执行的测试没有任何影响。
3. 是错误的方法,因为您不应该将项目 X 的源添加到项目 Y。
如果你想要的是gradle :SubProjectA:test
还执行:SubProjectATest:test
,您需要做的就是添加一个任务依赖性:
子项目A/build.gradle:
test.dependsOn(":subProjectATest:test")
顺便问一下,您将测试放在单独的项目中的动机是什么?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)