微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – Gradle – 如何从不同的gradle项目运行测试并仍然获得覆盖数据

有谁知道如何从不同的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.只需在测试编译类路径中添加类.这对将要执行哪些测试没有任何影响.

3.是错误方法,因为您不应该将项目X中的源添加到项目Y.

如果你想要的是gradle:SubProjectA:test也执行:SubProjectATest:test,你需要做的就是添加一个任务依赖:

SubProjectA /的build.gradle:

test.dependsOn(":subProjectATest:test")

顺便说一下,你将测试放在一个单独的项目中的动机是什么?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐