在我的esCopresso测试的JaCoCo代码覆盖率报告中,错过了所有线路和分支.我在一个使用gradle 1.5.0构建的Android应用程序中使用JaCoCo.
我的gradle配置:
apply plugin: 'jacoco'
android {
buildTypes {
debug {
testCoverageEnabled = true
}
}
}
jacoco {
version '0.7.5.201505241946'
}
Run Code Online (Sandbox Code Playgroud)
我关注这篇博文:Android应用程序的测试覆盖率报告.
当我运行时createDebugCoverageReport,报告将在正确的文件夹(build/reports/coverage/flavor/debug/index.html)中生成.但是,当我打开覆盖率报告时,我的代码覆盖率在每个指令和分支上都是0%.一切都"错过"了.
首先,我认为问题可能是源代码和测试代码的位置,但它们位于/src/main/java/和/src/androidTest/java/
任何人都知道如何解决这个问题?
android gradle jacoco android-gradle-plugin android-espresso
如果我:
connectedAndroidDebugTestGradle任务(从Android Studio内部或通过gradlew)该应用程序最终会在测试运行时被卸载。即使我添加了一个testApplicationId值以defaultConfig使测试代码使用其他应用程序ID,我也会得到这种行为。
如何停止这种行为?如何在不干扰现有应用安装的情况下从命令行运行检测测试?
使用Gradle管理Android的依赖关系是以一种奇怪的方式完成的.它们必须以不同方式下载到本地仓库中.设置CI构建时很难,因为可以运行多个节点.因此我使用sdk-manager-plugin在构建时下载Android依赖项.似乎有一个旧的错误,我正在使用sdk-manager-plugin,但它会在构建时下载依赖项,但它们将无法在该命令上使用.
下次运行该命令时一切正常(因为所有内容都已下载),但是我需要找到一种方法来忽略第一个gradle命令的构建失败,以便下载所有内容并且第二个好.我意识到这很糟糕,但我已经搞砸了这个.
理想情况下这样的事情会起作用:
./gradlew clean --ignoreBuildFailures
./gradlew distributeCIBuild
Run Code Online (Sandbox Code Playgroud)
我在Gradle文档中找到的最接近的东西是--quite,但看起来它不起作用.
任何创意解决方案欢迎