gpt4 book ai didi

android - Jacoco 代码覆盖 Android Studio 不考虑 androidTest 文件夹

转载 作者:太空宇宙 更新时间:2023-11-03 11:02:06 25 4
gpt4 key购买 nike

我正在尝试在我的 Android 项目上激活 Jacoco,用于单元测试(test 文件夹)和仪器测试(androidTest 文件夹)。真的,我对插桩测试最感兴趣,因为我的测试都放在这里。

我可以成功执行这两种类型的测试,但是当我尝试创建覆盖率报告(使用 gradlew createDebugCoverageReport 命令)时,没有考虑插桩测试。

此外,当我右键单击文件夹时,只有 test 文件夹中的测试显示“使用 Coverage 运行”选项,如果我转到“编辑配置”,则只有 JUnit 下的配置有“代码覆盖率”选项卡,在“Android 测试”配置中看不到它。

这是我的build.gradle:

apply plugin: 'com.android.application'
//apply plugin: "jacoco"

android {
compileSdkVersion 23
buildToolsVersion '23.0.2'

dexOptions {
javaMaxHeapSize "4g"
}

defaultConfig {
applicationId "com.abc.myapp"
minSdkVersion 19
targetSdkVersion 23
versionCode 1
versionName "1.0"
// Enabling multidex support.
multiDexEnabled true
// testInstrumentationRunner 'com.android.test.runner.MultiDexTestRunner'
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
testCoverageEnabled false
}
debug {
debuggable true
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
testCoverageEnabled true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}

testOptions {
unitTests.returnDefaultValues = true
}

productFlavors {
}

sourceSets {
main {
resources.srcDirs = ['src/main/java']
}

debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
// androidTest.setRoot('src/androidTest')
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/notice.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/dependencies.txt'
exclude 'META-INF/LGPL2.1'
exclude 'NOTICE'
exclude 'LICENSE.txt'
exclude 'LICENSE'
exclude 'asm-license.txt'
}

configurations.all {
resolutionStrategy {
force 'com.android.support:support-annotations:23.0.1'
}
}

}

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:multidex:1.0.1'
compile 'com.android.support:appcompat-v7:24.1.1'

androidTestCompile 'com.android.support:support-annotations:24.0.0'
androidTestCompile 'com.android.support.test:runner:0.5'
androidTestCompile 'com.android.support.test:rules:0.5'
// Optional -- Hamcrest library
androidTestCompile 'org.hamcrest:hamcrest-library:1.3'
// // Optional -- UI testing with Espresso
// androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
// // Optional -- UI testing with UI Automator
// androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2'

androidTestCompile 'org.mockito:mockito-core:1.10.19'
androidTestCompile 'com.google.dexmaker:dexmaker:1.2'
androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.2'

androidTestCompile 'junit:junit:4.12'
testCompile 'junit:junit:4.12'
}

最佳答案

gradlew createDebugAndroidTestCoverageReport 为应用模块中的仪器测试创建代码覆盖率报告,您可以在其中找到它

/build/reports/coverage/debug > index.html

关于android - Jacoco 代码覆盖 Android Studio 不考虑 androidTest 文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39856273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com