我正在使用Ant在RHEL6机器上运行Sonar Java代码分析.对于集成测试分析,我使用声纳的JaCoCo插件.我的库类路径中有插件.当我运行我的Selenium测试时,会生成一个"jacoco.exec"文件(10个测试大约1MB).然后我在Sonar Ant目标中激活Jacoco插件并将其导入Sonar.声纳分析日志说Jacoco文件已被分析(大约需要5000毫秒).但是,My Sonar IT小部件显示0%的代码覆盖率.我使用Cobertura成功获得了单元测试代码覆盖率.
我的测试目标:
<taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
<classpath path="${buildHome}/libs/jacocoant.jar"/>
</taskdef>
<jacoco:coverage xmlns:jacoco="antlib:org.jacoco.ant">
<junit fork="yes" failureproperty="true" forkmode="once" maxmemory="1024m">
<formatter type="xml" />
<classpath refid="buildClasspath" />
<test name="${testName}" todir="${testLogs}" if="testcase" />
<batchtest haltonerror="false" todir="${testLogs}">
<fileset dir="${SeleniumScripts">
<include name="**/*.java" />
</fileset>
</batchtest>
</junit>
</jacoco:coverage>
Run Code Online (Sandbox Code Playgroud)
我的声纳蚂蚁目标:
...
<property name="sonar.sources" value="${srcCode" />
<property name="sonar.tests" value="${testCode}" />
<property name="sonar.binaries" value="${srcAndTestBinaries}" />
<property name="sonar.dynamicAnalysis" value="reuseReports"/>
<property name="sonar.surefire.reportsPath" value="${reportsPath}" />
<property name="sonar.core.codeCoveragePlugin" value="jacoco" />
<property name="sonar.jacoco.itReportPath" value="${jacocoCoveragePath}/jacoco.exec" />
<!-- Add the Sonar task -->
<taskdef uri="antlib:org.sonar.ant" resource="org/sonar/ant/antlib.xml"> …Run Code Online (Sandbox Code Playgroud) 有没有人能够从Maven构建的JaCoCo中获得JMockit和Powermock单元测试的单元测试覆盖率?
我有一个Powermock单元测试的现有测试集,我想逐步迁移到JMockit.但我需要能够在一份报告中看到所有单元测试的测试覆盖率,最好是在Sonar中.
通过将JaCoCo置于"离线"模式,我确实让JMockit和Powermock测试与Surefire/JaCoCo一起运行(否则我遇到了一个问题,其中一个代理在测试结束时没有被终止,然后mvn clean无法删除在下次运行时生成目标\ surefire\surefirebooter2967126910681005991.jar).但是没有为JMockit测试生成覆盖范围.
如果你有这个工作,请发布你的pom的一些摘录.
这就是我的pom的样子(注意surefire插件与reuseForks = false一致,以解决Powermock中的PermGen内存泄漏问题,这是迁移到JMockit的主要原因之一)
<profile>
<!-- use this profile to perform Sonar analysis -->
<id>sonar</id>
<properties>
<sonar.language>java</sonar.language>
<!-- Tells Sonar to use the generated test coverage report -->
<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
<!-- Tells Sonar to use JaCoCo as the code coverage tool -->
<sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
<sonar.java.codeCoveragePlugin>jacoco</sonar.java.codeCoveragePlugin>
</properties>
<build>
<plugins>
<!-- surefire (junit) plugin config with JaCoCo listener -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.16</version>
<configuration>
<!-- note: use single JVM to append …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Android Studio中的Gradle为新的空Android项目提供代码覆盖.
我设法让Sonar工作,但我似乎无法弄清楚代码覆盖率.(之前没做过类似的事情)
我看过JaCoCo,但它与Android不兼容.Cobertura也是如此.似乎Emma还没有和Gradle合作.
我使用的是Gradle 1.11,Android Studio 0.5.1和Sonar Runner 2.3
我正在尝试让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) 我正在尝试为多模块maven项目生成声纳的单元测试代码覆盖率数据,而不是获得正确的结果.
项目结构类似于以下内容:
我使用jacoco maven插件生成jacoco.exec文件,使用声纳maven插件分析代码(包括jacoco.exec文件).
这些文件在此process-tests阶段生成,如下所示:
<properties>
<jacoco.report.path>${project.build.directory}/jacoco.exec</jacoco.report.path>
<sonar.jacoco.reportPath>${jacoco.report.path}</sonar.jacoco.reportPath>
</properties>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.4.201502262128</version>
<executions>
<execution>
<id>default-prepare-agent</id>
<phase>process-test-classes</phase>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<destFile>${jacoco.report.path}</destFile>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
当我运行mvn clean install时,我可以看到jacoco.exec为每个模块创建了一个文件:
$ find . -name '*.exec'
./moduleA/target/jacoco.exec
./moduleB/moduleB1/target/jacoco.exec
./moduleB/moduleB2/target/jacoco.exec
./moduleC/target/jacoco.exec
Run Code Online (Sandbox Code Playgroud)
当我运行mvn sonar:sonar时,我看到Jacoco传感器可以运行所有模块,但似乎只适用于第一个模块.后续模块显示Coverage information was not collected:
[INFO] [17:13:58.333] Sensor JaCoCoSensor
[INFO] [17:13:58.350] Analysing moduleA\target\jacoco.exec
[INFO] [17:13:58.374] No information about coverage per …Run Code Online (Sandbox Code Playgroud) 我正在开发一个Android新项目.目前,我正在使用Android studio作为IDE.我需要运行单元测试和系统(CI)测试流程,这些测试流程可以在本地计算机(JVM)和仿真器/真实设备上运行以进行检测.
请注意,我正在通过命令行运行所有单元测试.
为了获得我使用Jacoco的仿真器/真实设备的代码覆盖率.并运行以下命令:gradlew createDebugCoverageReport但是,我找不到任何方法从命令行运行带有覆盖率报告的本地机器单元测试.唯一的方法是通过选择"使用代码覆盖率运行XXX"从android工作室运行它:
您能告诉我是否可以从命令行进行本地单元测试覆盖范围.并将报告作为html文件?
谢谢,Zachi
在我的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
我正在尝试从使用的命令行配置JaCoCo maven插件pom.xml。prepare-agent到目前为止,我已经可以执行以下命令了:
mvn -X -Djacoco.destFile=./coverage/jacoco.exec clean org.jacoco:jacoco-maven-plugin:prepare-agent install
Run Code Online (Sandbox Code Playgroud)
输出:
[DEBUG] Configuring mojo org.jacoco:jacoco-maven-plugin:0.7.6.201602180812:prepare-agent from plugin realm ClassRealm[plugin>org.jacoco:jacoco-maven-plugin:0.7.6.201602180812, parent: sun.misc.Launcher$AppClassLoader@70dea4e]
[DEBUG] Configuring mojo 'org.jacoco:jacoco-maven-plugin:0.7.6.201602180812:prepare-agent' with basic configurator -->
[DEBUG] (f) destFile = /src/coverage/jacoco.exec
...
Run Code Online (Sandbox Code Playgroud)
它会创建./coverage/jacoco.exec文件,现在我正在尝试运行report阶段,但无法在此阶段设置属性。我正在运行命令:
mvn -X -Djacoco.dataFile=./coverage/jacoco.exec -Djacoco.outputDirectory=./jacoco_ut org.jacoco:jacoco-maven-plugin:report
Run Code Online (Sandbox Code Playgroud)
要么
mvn -X -DdataFile=./coverage/jacoco.exec -DoutputDirectory=./jacoco_ut org.jacoco:jacoco-maven-plugin:report
Run Code Online (Sandbox Code Playgroud)
在jacoco:报告没有user property为jacoco:准备代理。
我有这样的输出:
[DEBUG] Configuring mojo 'org.jacoco:jacoco-maven-plugin:0.7.6.201602180812:report' with basic configurator -->
[DEBUG] (f) dataFile = /src/target/jacoco.exec
[DEBUG] (f) outputDirectory = /src/target/site/jacoco …Run Code Online (Sandbox Code Playgroud) 在更新到Gradle Build Tools 2.1.3和Gradle 2.14.1之后,我在Android项目中看到以下错误.它在我运行应用程序时立即发生.我该如何解决?
java.lang.NoClassDefFoundError: Failed resolution of: Lorg/jacoco/agent/rt/internal_14f7ee5/Offline;
at com.ourapp.next.conversation.SomeList.SomeListViewModel.$jacocoInit(SomeListViewModel.java)
at com.ourapp.next.conversation.SomeList.SomeListViewModel.(SomeListViewModel.java)
at com.ourapp.next.conversation.SomeList.SomeListAdapterTest.(SomeListAdapterTest.java:26)
at java.lang.reflect.Constructor.newInstance(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
at org.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4ClassRunner.java:217)
at org.junit.runners.BlockJUnit4ClassRunner$1.runReflectiveCall(BlockJUnit4ClassRunner.java:266)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:263)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runners.Suite.runChild(Suite.java:128)
at org.junit.runners.Suite.runChild(Suite.java:27)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
at android.support.test.internal.runner.TestExecutor.execute(TestExecutor.java:59)
at android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:262)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1853)
Caused by: java.lang.ClassNotFoundException: Didn't find class "org.jacoco.agent.rt.internal_14f7ee5.Offline" on path: …Run Code Online (Sandbox Code Playgroud) 我想添加JaCoCo到我Android的Sonar Qube报道。但是在运行命令时./gradlew jacocoTestReport,出现以下错误。
Task :app:testAlphaReleaseUnitTest FAILED
FAILURE: Build failed with an exception.
Run Code Online (Sandbox Code Playgroud)
出了什么问题:
Could not resolve all files for configuration ':app:jacocoAgent'.
> Could not find org.jacoco:org.jacoco.agent:org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated.
Searched in the following locations:
- file:/Users/atif/Library/Android/sdk/extras/m2repository/org/jacoco/org.jacoco.agent/org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated/org.jacoco.agent-org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated.pom
- file:/Users/atif/Library/Android/sdk/extras/m2repository/org/jacoco/org.jacoco.agent/org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated/org.jacoco.agent-org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated.421021a4
- file:/Users/atif/Library/Android/sdk/extras/google/m2repository/org/jacoco/org.jacoco.agent/org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated/org.jacoco.agent-org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated.pom
- file:/Users/atif/Library/Android/sdk/extras/google/m2repository/org/jacoco/org.jacoco.agent/org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated/org.jacoco.agent-org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated.421021a4
- file:/Users/atif/Library/Android/sdk/extras/android/m2repository/org/jacoco/org.jacoco.agent/org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated/org.jacoco.agent-org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated.pom
- file:/Users/atif/Library/Android/sdk/extras/android/m2repository/org/jacoco/org.jacoco.agent/org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated/org.jacoco.agent-org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated.421021a4
- https://jcenter.bintray.com/org/jacoco/org.jacoco.agent/org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated/org.jacoco.agent-org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated.pom
- https://jcenter.bintray.com/org/jacoco/org.jacoco.agent/org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated/org.jacoco.agent-org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated.421021a4
- https://dl.google.com/dl/android/maven2/org/jacoco/org.jacoco.agent/org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated/org.jacoco.agent-org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated.pom
- https://dl.google.com/dl/android/maven2/org/jacoco/org.jacoco.agent/org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated/org.jacoco.agent-org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated.421021a4
- https://maven.fabric.io/public/org/jacoco/org.jacoco.agent/org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated/org.jacoco.agent-org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated.pom
- https://maven.fabric.io/public/org/jacoco/org.jacoco.agent/org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated/org.jacoco.agent-org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated.421021a4
- https://jcenter.bintray.com/org/jacoco/org.jacoco.agent/org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated/org.jacoco.agent-org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated.pom
- https://jcenter.bintray.com/org/jacoco/org.jacoco.agent/org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated/org.jacoco.agent-org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated.421021a4
- https://maven.fabric.io/public/org/jacoco/org.jacoco.agent/org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated/org.jacoco.agent-org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated.pom
- https://maven.fabric.io/public/org/jacoco/org.jacoco.agent/org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated/org.jacoco.agent-org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated.421021a4
- https://dl.google.com/dl/android/maven2/org/jacoco/org.jacoco.agent/org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated/org.jacoco.agent-org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated.pom
- https://dl.google.com/dl/android/maven2/org/jacoco/org.jacoco.agent/org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated/org.jacoco.agent-org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated.421021a4
- https://repo.maven.apache.org/maven2/org/jacoco/org.jacoco.agent/org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated/org.jacoco.agent-org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated.pom
- https://repo.maven.apache.org/maven2/org/jacoco/org.jacoco.agent/org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated/org.jacoco.agent-org.gradle.testing.jacoco.plugins.JacocoPluginExtension_Decorated.421021a4 …Run Code Online (Sandbox Code Playgroud)