我试图只执行单元测试和基因测试报告,但是我总是看到一条失败的消息:
Execution failed for task ':App:connectedDebugAndroidTest'.
> com.android.builder.testing.api.DeviceException: No connected devices!分级代码:
apply plugin: 'jacoco'
jacoco {
toolVersion = "0.8.1"
}
task jacocoTestReport(type: JacocoReport, dependsOn: ['testTpsDebugUnitTest', 'create<build-vairant>DebugCoverageReport']) {
group = "reporting"
description = "Generate unified Jacoco code coverage report"
reports {
xml.enabled false
csv.enabled false
html.destination file("${buildDir}/reports/jacocoHtml")
}
def fileFilter = [
'**/*Test*',
'**/*_MembersInjector.class',
'**/*_Factory.class']
def debugTree = fileTree(dir: "${buildDir}/intermediates/classes/<build-variant>/debug", excludes: fileFilter)
def mainSrc = "${project.projectDir}/src/main/java"
sourceDirectories = files([mainSrc])
classDirectories = files([debugTree])
executionData = fileTree(dir: "$buildDir", includes: [
"jacoco/test<build-variant>DebugUnitTest.exec"
])我执行命令:
./gradlew -Pcoverage clean jacocoTestReport请帮助解决这个问题,所以它只执行单元测试,而不要求设备!
发布于 2022-09-22 20:22:00
我在调试Jacoco安装时看到了这个问题,幸运的是,这是解决方案的开始。
如果您正在运行Unit测试(包括Jacoco单元测试),则不应该需要设备。AndroidTests需要一个设备,而不是单元测试。
安装完所有Jacoco后,对gradle进行更改并重新同步:

。

gradle app:createDebugUnitTestCoverageReport并点击。这将启动Jacoco进程的运行。由于它通常依赖于单元测试(假设您的等级配置正确),它将强制单元测试首先运行。您将在gradle中指定的位置找到报表(默认情况下类似于./app/build/reports/coverage/test/debug/index.html). )
我的问题是,在第三步,我输入了错误的单元测试,我输入了gradle app:createDebug...,并接受了第一个建议。这是不对的!它放置了createDebugAndroidTestUnitCoverageReport,这不是我想要的(并且导致了请求设备的错误)。
https://stackoverflow.com/questions/50359144
复制相似问题