我有一个类似这样的项目结构:
-应用
--模块 2 //库模块
--模块3 //库模块
我正在为我的多模块Android项目编写仪器测试用例,其中包含jaco代码覆盖范围。如果我从“app”模块执行检测测试用例,则仅为“app”模块类生成代码覆盖率。
因此,为了获得“模块2”的代码覆盖率
当我在非应用程序模块中执行插装测试用例,无法启动主活动,插装期间应用程序未启动,测试用例失败时,会出现问题。
根本原因是:
@Rule
public ActivityTestRule<MainActivity> mActivityTestRule = new ActivityTestRule<>(MainActivity.class);
@Rule未在“模块 2”中声明
错误:
java.lang.RuntimeException: No activities found. Did you forget to launch the activity by calling getActivity() or startActivitySync or similar?
如何解决这个问题?
注意:这个问题是专门针对仪器测试的,不是针对单元测试的(这已经在单元测试中处理了)
类似的问题
我遵循了这个安维尔,并根据我的要求改变了分级任务。添加评分任务以供参考。
task jacocoUiTestReportAllModules(type: JacocoReport, dependsOn: 'createDebugCoverageReport') {
group "Reports"
description "Generate Jacoco Instrumented Tests coverage reports for all modules"
reports {
xml.enabled = true
html.enabled = true
html.destination file("${rootProject.buildDir}/coverage-report")
}
def javaClasses = []
def kotlinClasses = []
def javaSrc = []
def kotlinSrc = []
def execution = []
rootProject.subprojects.each { proj ->
javaClasses << fileTree(dir: "$proj.buildDir/intermediates/javac/debug", excludes: fileFilter)
kotlinClasses << fileTree(dir: "$proj.buildDir/tmp/kotlin-classes/debug", excludes: fileFilter)
javaSrc << "$proj.projectDir/src/main/java"
kotlinSrc << "$proj.projectDir/src/main/kotlin"
execution << fileTree(dir: proj.buildDir, includes: [
'outputs/code_coverage/debugAndroidTest/connected/**/*.ec'])
}
getSourceDirectories().setFrom(files([javaSrc, kotlinSrc]))
getClassDirectories().setFrom(files([javaClasses, kotlinClasses]))
getExecutionData().setFrom(execution)
doLast() {
print "file://${reports.html.destination}/index.html"
}
}
运行<code>gradlew jacocoUiTestReportAllModules[projRoot]/build/coverage report中显示完全覆盖的报告。
我有一个maven多模块项目。 所有测试都在称为tests/的单个模块中,所有代码都在单独的模块中。 有没有办法让我得到代码覆盖率?
我有这样的项目结构: 模块应用程序 模块-登录 模块注册 问题:我有上面喜欢Android项目的结构,能够生成jaco代码覆盖率报告,并且可以用于声纳仪表板。我面临的espresso测试问题,它只显示模块应用程序的代码覆盖率,而不显示其他模块的代码覆盖率。Espresso测试正在运行用例流,如注册,然后从其他两个模块登录和调用类,但其他两个模块的覆盖率始终为0%。 < li >我想了解espres
我有一个多模块项目和一个家长pom。xml及其两个模块。项目jar和项目。战争所有测试用例都在项目中。罐子当我运行mvn声纳时。母舰pom上的声纳目标,jacoco。未生成exec,代码覆盖率为空。我在父pom中具有以下属性。 请帮忙。我使用的是Sonarqube 4.2。
我有一个多模块项目,我似乎无法在Sonarqube上获得准确的单元测试代码覆盖率报告。我使用buildr和JaCoCo生成测试覆盖率。文件继承类似于下面。 项目--module1----reports----Jacoco------Jacoco.cov(jacoco执行文件,以前用作.exec)--module2--reports----Jacoco(生成的HTML、CSV和XML报表文件)---
我有一个基本的maven多模块,父模块是POM,其子模块是domain、service和Web。 我已经在pom父级中添加了jacoco插件和所需的配置,以便将测试覆盖率报告附加到一个Sonar很容易找到的文件中。 我的问题是,Sonar只显示第一个模块的测试覆盖范围(是domain)(即使我用编辑器打开文件,看到其他模块的类名被追加在其中)。 这种配置会有什么问题? 为了它的价值,声纳分析被称为
我有一个Android应用程序,它由两个模块组成: 注意:我使用的是Gradle版本3.1.2。 我尝试了几种方法,下面这个确实合并了测试…但是报道并不正确: //UI测试覆盖率过滤(我们需要运行应用程序的单元测试,以便能够使用Jacoco进行过滤) //单元测试覆盖过滤 任务createTestReport(类型:JacocoReport,Dependson:['test UnitteStuni