有谁知道如何从不同的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插件,我想构建SubProjectA并在SubProjectA的build.gradle中运行SubProjectATest中的所有测试.
以下是我在SubProjectA的build.gradle中尝试过的一些内容
> testCompile项目(‘:SubProjectATest’).sourceSets.test.classes(as suggested by this article),但我收到错误“无法在项目中找到属性’sourceSets’”
>只是直接的testCompile项目(‘:SubProjectATest’),然后我得到“..SubProjectA / build / classes / test’,not found”和“跳过任务”:SubProjectA:compileTestJava’,因为它没有源代码文件“.
>只需添加如下所示的sourceSet:
测试{
java {
srcDir’../SubProjectATest/src’
}
}
在(选项3)中添加源集是唯一有效的选项,但这样做似乎很草率.有谁知道如何使用项目依赖项来做到这一点?
更新#1
我还尝试了下面的一个答案,使用test.dependsOn并运行测试,但是emma插件报告了以下内容:build / classes / test’,未找到
解决方法:
1.和2.只需在测试编译类路径中添加类.这对将要执行哪些测试没有任何影响.
如果你想要的是gradle:SubProjectA:test也执行:SubProjectATest:test,你需要做的就是添加一个任务依赖:
SubProjectA /的build.gradle:
test.dependsOn(":subProjectATest:test")
顺便说一下,你将测试放在一个单独的项目中的动机是什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。