我正在使用Android Studio开发应用程序.
我能够运行测试代码.
但是,我不知道如何在android studio中获得代码覆盖率.
我已经看到以下链接.
Android Gradle Code Coverage
但我迫不及待地想要更新到支持emma的v0.6.
项目配置如下.
主要代码
MyProject/AppName/src/main/java/mypackage/MyClass.java
测试代码
MyProject的/ AppName的/ src目录/ instrumentTest/JAVA/mypackage的/测试/ MyClassTest.java
项目配置
MyProject的
├─build.gradle
└─AppName
├─build.gradle
└─src
├─main
│├─java
││└─mypackage
││└─MyClass.java
│├─res
│└─AndroidManifest.xml
└─ instrumentTest
└─java
└─mypackage
└─test
└─MyClassTest.java
我正在尝试使用Gradle Android插件0.10.2获取测试覆盖率报告.但是在运行一些测试后我仍然无法获得覆盖率报告.(connectedAndroidTest).
我的主模块的build.gradle是:
apply plugin: 'android'
android {
compileSdkVersion 19
buildToolsVersion "19.0.3"
defaultConfig {
minSdkVersion 8
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
debug {
testCoverageEnabled true
}
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:19.+'
}
Run Code Online (Sandbox Code Playgroud)
而project的build gradle的buildscript部分是:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.10.+'
}
}
Run Code Online (Sandbox Code Playgroud)
一旦我gradlew connectedAndroidTest从终端运行,我可以在文件夹中找到coverage-instrumented-classes和code-coverage文件build夹.但我coverage在reports文件夹中找不到文件夹.(只有我能看到的是androidTests文件夹) …
我是Gradle和Android测试的新手,但我已经将我的Android项目转换为使用Gradle构建.
现在,我正在尝试使用Gradle的JaCoCo插件执行Android项目的测试覆盖.
我已将以下内容添加到build.gradle文件中:
apply plugin: 'jacoco'
Run Code Online (Sandbox Code Playgroud)
当我运行"gradle jacocoTestReport"时出现以下错误:
Task 'jacocoTestReport' not found in root project '<project name>'.
Run Code Online (Sandbox Code Playgroud)
从文档我应该也应用插件'java'但它与插件'android'冲突.
有没有解决的办法?
提前致谢.
我正在尝试让jacoco为我的android测试项目创建一个代码覆盖率报告.我在build.gradle中有以下内容:
apply plugin: 'com.android.application'
apply plugin: 'jacoco'
...
jacoco {
toolVersion = "0.7.1.201405082137"
}
...
android {
buildTypes {
release {
}
debug {
testCoverageEnabled true
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行gradlew -i createDebugCoverageReport时,我得到一个覆盖率报告,但它是空的.gradle执行结束如下:
:androidTest:connectedAndroidTest (Thread[main,5,main]) completed. Took 2 mins 36.951 secs.
:androidTest:createDebugCoverageReport (Thread[main,5,main]) started.
:androidTest:createDebugCoverageReport
Executing task ':androidTest:createDebugCoverageReport' (up-to-date check took 0.006 secs) due to:
Output file /home/akos/src/androidTest/build/outputs/reports/coverage/debug has changed.
Output file /home/akos/src/androidTest/build/outputs/reports/coverage/debug/index.html has been removed.
Output file /home/akos/src/androidTest/build/outputs/reports/coverage/debug/.resources/package.gif has been removed.
[ant:reportWithJacoco] Loading execution data file /home/akos/src/androidTest/build/outputs/code-coverage/connected/coverage.ec
[ant:reportWithJacoco] Writing bundle …Run Code Online (Sandbox Code Playgroud)