当前位置: 首页 > 知识库问答 >
问题:

使用声纳和Jacoco的手动回归代码覆盖范围

许琛
2023-03-14

我正在尝试为webapp生成代码覆盖率,以便使用jacoco和sonar进行手动测试。

我能够通过以下方式修改catalina.bat来生成jacoco.exec文件:

SET JACOCO=-javaagent:\JACOCO-0.7.5.201505241946\lib\jacoagent。jar=destfile=C:\jacoco。exec,append=true,includes=*set JAVA_OPTS=%JAVA_OPTS%%JACOCO%I然后复制JACOCO。执行文件到sonarcube内的目标文件夹,然后运行ant sonar。建造。xml包含以下条目:

    <!-- The following properties are required to use JaCoCo: -->
<property name="sonar.dynamicAnalysis" value="reuseReports" />
<property name="sonar.java.coveragePlugin" value="jacoco" />
<property name="sonar.jacoco.reportPath" value="target/jacoco.exec" />

<!-- Define the SonarQube target -->
<target name="sonar">

    <taskdef uri="antlib:org.sonar.ant" resource="org/sonar/ant/antlib.xml">
            <!-- Update the following line, or put the "sonar-ant-task-*.jar" file in your "$HOME/.ant/lib" folder -->
            <classpath path="../apache-ant-1.9.6/lib/sonar-ant-task-2.3.jar"/>
    </taskdef> 
        <!-- Execute the SonarQube analysis -->
        <sonar:sonar/>

</target>

</project>

我从ant获得的输出如下。我在url上看不到任何报道http://localhost:9000/dashboard/index/org.codehaus.sonar:example-爪哇蚂蚁

我错过什么了吗?

c:\sonarqube>ant sonar
Buildfile: c:\sonarqube\build.xml

sonar:
[sonar:sonar] Apache Ant(TM) version 1.9.6 compiled on June 29 2015
[sonar:sonar] SonarQube Ant Task version: 2.3
[sonar:sonar] Loaded from: file:/C:/apache-ant-1.9.6/lib/sonar-ant-task-2.3.jar
[sonar:sonar] INFO: Default locale: "en_US", source code encoding: "windows-1252" (analysis is platform dependent)
[sonar:sonar] INFO: Work directory: c:\sonarqube\.sonar
[sonar:sonar] INFO: SonarQube Server 5.2
[sonar:sonar] 17:18:52.370 INFO  - Load global repositories
[sonar:sonar] 17:18:52.959 INFO  - Load global repositories (done) | time=588ms
[sonar:sonar] 17:18:53.034 INFO  - User cache: C:\Users\Administrator\.sonar\cache
[sonar:sonar] 17:18:53.932 INFO  - Load plugins index
[sonar:sonar] 17:18:53.952 INFO  - Load plugins index (done) | time=20ms
[sonar:sonar] 17:18:54.677 INFO  - Process project properties
[sonar:sonar] 17:18:57.381 INFO  - Load project repositories
[sonar:sonar] 17:18:57.493 INFO  - Load project repositories (done) | time=112ms
[sonar:sonar] 17:18:57.535 INFO  - Apply project exclusions
[sonar:sonar] 17:18:57.667 INFO  - Load quality profiles
[sonar:sonar] 17:18:57.983 INFO  - Load quality profiles (done) | time=315ms
[sonar:sonar] 17:18:58.039 INFO  - Load active rules
[sonar:sonar] 17:19:00.610 INFO  - Load active rules (done) | time=2571ms
[sonar:sonar] 17:19:00.636 WARN  - 'sonar.dynamicAnalysis' is deprecated since version 4.3 and should no longer be used.
[sonar:sonar] 17:19:00.797 WARN  - SCM provider autodetection failed. No SCM provider claims to support this project. Please use sonar.
scm.provider to define SCM of your project.
[sonar:sonar] 17:19:00.800 INFO  - Publish mode
[sonar:sonar] 17:19:00.805 INFO  - -------------  Scan Simple Java Project analyzed with the SonarQube Ant Task
[sonar:sonar] 17:19:01.844 INFO  - Language is forced to java
[sonar:sonar] 17:19:01.887 INFO  - Load server rules
[sonar:sonar] 17:19:02.373 INFO  - Load server rules (done) | time=486ms
[sonar:sonar] 17:19:02.755 INFO  - Base dir: c:\sonarqube
[sonar:sonar] 17:19:02.756 INFO  - Working dir: c:\sonarqube\.sonar
[sonar:sonar] 17:19:02.781 INFO  - Source paths: src
[sonar:sonar] 17:19:02.786 INFO  - Source encoding: windows-1252, default locale: en_US
[sonar:sonar] 17:19:02.787 INFO  - Index files
[sonar:sonar] 17:19:02.854 INFO  - 0 files indexed
[sonar:sonar] 17:19:02.857 INFO  - Quality profile for java: Sonar way
[sonar:sonar] 17:19:02.999 INFO  - Sensor Lines Sensor
[sonar:sonar] 17:19:03.005 INFO  - Sensor Lines Sensor (done) | time=6ms
[sonar:sonar] 17:19:03.006 INFO  - Sensor QProfileSensor
[sonar:sonar] 17:19:03.095 INFO  - Sensor QProfileSensor (done) | time=89ms
[sonar:sonar] 17:19:03.096 INFO  - Sensor SCM Sensor
[sonar:sonar] 17:19:03.097 INFO  - No SCM system was detected. You can use the 'sonar.scm.provider' property to explicitly specify it.
[sonar:sonar] 17:19:03.100 INFO  - Sensor SCM Sensor (done) | time=4ms
[sonar:sonar] 17:19:03.100 INFO  - Sensor Code Colorizer Sensor
[sonar:sonar] 17:19:03.106 INFO  - Sensor Code Colorizer Sensor (done) | time=6ms
[sonar:sonar] 17:19:03.107 INFO  - Sensor CPD Sensor
[sonar:sonar] 17:19:03.108 INFO  - JavaCpdEngine is used for java
[sonar:sonar] 17:19:03.110 INFO  - Sensor CPD Sensor (done) | time=3ms
[sonar:sonar] 17:19:03.304 INFO  - Analysis reports generated in 192ms, dir size=5 KB
[sonar:sonar] 17:19:03.320 INFO  - Analysis reports compressed in 15ms, zip size=2 KB
[sonar:sonar] 17:19:03.758 INFO  - Analysis reports sent to server in 424ms
[sonar:sonar] 17:19:03.762 INFO  - ANALYSIS SUCCESSFUL, you can browse 

共有1个答案

陶炫明
2023-03-14

查看分析日志,我们看不到任何执行的JaCoCo传感器。JaCoCo sensor只有在您的分析中有java文件时才会执行,而您在日志中的0索引文件中可以看到这些文件。

要解释这种行为,您必须了解JaCoCo sensor只会报告索引文件的覆盖率,因此如果没有java文件,就没有必要执行它。

因此,要报告和计算覆盖率,您必须导入与您在项目中分析的一些源文件相关的覆盖率报告。

 类似资料:
  • 我正在将 Gradle 4.4 用于 JaCoCo 0.8.0 的 Java 项目,并将声纳与声纳贾瓦 5.0.1 配合使用。 我有一个用龙目岛和注释的课程。 我在build.gradle中的JaCoCo配置如下所示: 此外,我有lombok.confi文件,其属性为< code > lombok . addlombokgeneratedannotation = true ,生成的内容实际上有<

  • 我正在通过Ant运行声纳任务,由RHEL环境中的Jenkins触发。我成功地使用Cobertura进行Junit代码复盖,并使用Surefire进行报告。声纳进口Surefire报告良好。 我很困惑如何真正做到这一点。网页http://www.sonarsource.org/measure-coveration-by-integration-tests-with-sonar-updated/参考了

  • 我正在使用Ant在RHEL6机器上运行Sonar Java代码分析。对于集成测试分析,我使用JaCoCo sonar插件。我的库类路径中有插件。当我运行Selenium测试时,会生成一个“jacoco.exec”文件(10个测试大约1MB)。然后在我的Sonar Ant目标中激活Jacoco插件,并将其导入Sonar。声纳分析日志显示,已对Jacoco文件进行了分析(耗时约5000毫秒)。然而,我

  • 我正在尝试使用JaCoCo-javaagent传递VM参数来获得代码覆盖率 -Java agent:/test/jaco co/jaco agent . jar = dest file =/test/jaco co/jaco co . exec,includes=com。*,append=true 我能在jacoco中获得一些价值。执行文件,但无法获取覆盖率报告。我怎样才能把jacoco转化成。执

  • 我们有一个多模块的maven项目。 每个模块都有一对testng和powermock单元测试用例。我们正在使用jacoco进行代码覆盖率报告。但是,jacoco在分析单元测试复盖率时基于testng单元测试用例,而忽略了powermock单元测试用例。因此,总的代码覆盖率越来越低。 如何配置jacoco来同时获取testng和jacoco测试用例?

  • 我正在使用Jacoco插件使用jenkins获得代码覆盖率。我能够看到代码覆盖率。当我尝试使用相同的jacoco.exec文件来生成声纳代码覆盖率时,它显示:由于没有类文件,无法对项目覆盖率进行JaCoCo分析。我使用以下声纳属性: 我正在使用SonarQube 5.3