我是Gradle和Android测试的新手,但我已经将我的Android项目转换为使用Gradle构建 .
现在,我正在尝试使用Gradle的JaCoCo插件执行Android项目的测试覆盖 .
我已将以下内容添加到build.gradle文件中:
apply plugin: 'jacoco'
当我运行“gradle jacocoTestReport”时出现以下错误:
Task 'jacocoTestReport' not found in root project '<project name>'.
从文档我应该也应用插件'java'但它与插件'android'冲突 .
有没有解决的办法?
提前致谢 .
4 回答
这是我如何使用
Jacoco
:上面的代码还包含https://code.google.com/p/android/issues/detail?id=69174的解决方法 .
更多细节:http://chrisjenx.com/gradle-robolectric-jacoco-dagger/
我是_991665的解决方案,但是有一些小缺点,即在我们的项目中我们使用flavor并对这些flavor进行一些额外的测试以及每个的额外java代码 . 我们还使用不同的构建类型 . 因此,依赖于"testDebug"任务的解决方案还不够好 . 这是我的解决方案:在app模块中的build.gradle中添加
然后在app模块中创建一个jacoco.gradle文件,其中包含以下内容:
您可以从命令行执行它,如下所示:
要么
在我们的项目中,我们使用一个约定,不要在flavor和build类型名称中使用大写字母,但如果你的项目不遵循这个约定,你只需更改getFlavorFromVariant(..)和getBuildTypeFromVariant(..)函数
希望这有助于某人
您可以尝试使用此Gradle插件:https://github.com/arturdm/jacoco-android-gradle-plugin
这里的答案还有一点https://stackoverflow.com/a/32572259/1711454 .
您是否尝试添加以下内容:
然后而不是运行
./gradlew jacocoTestReport
运行./gradlew test jacocoTestReport
.如果一切顺利,您应该在
build/reports/jacoco/test/html/index.html
找到测试结果 .