未执行声纳公司报告

问题描述 投票:0回答:2

[我添加了用于使用声纳生成jacoco覆盖率报告的代码。但是当我运行mvn clean时,请安装sonar:sonar。仅执行与声纳相关的功能。不会生成Jacoco覆盖率报告。

<!-- Below plugin ensures the execution of test cases during maven build -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <includes>
                        <include>${runSuite}</include>
                    </includes>
                </configuration>
            </plugin>

            <!-- Sonar-JaCoCo integration plugin -->
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>0.7.6.201602180812</version>
                <configuration>
                    <destFile>${sonar.jacoco.reportPath}</destFile>
                    <append>true</append>
                </configuration>
                <executions>
                    <execution>
                        <id>agent</id>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.5</source>
                    <target>1.5</target>
                </configuration>
            </plugin>

            <properties>
        <sonar.sources>src/main</sonar.sources>
        <sonar.tests>src/test</sonar.tests>
        <!-- Below property indicates the pattern of the test suite -->
        <runSuite>**/*Suite.class</runSuite>
        <!-- Sonar-JaCoCo properties -->
        <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
        <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
        <sonar.jacoco.reportPath>${basedir}/../target/jacoco.exec</sonar.jacoco.reportPath>
        <sonar.language>java</sonar.language>
    </properties>
java sonarqube maven-2 jacoco-maven-plugin
2个回答
1
投票
Java插件不再为您运行单元测试。如here所述,您需要在分析之前自行启动它们:

mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Dmaven.test.failure.ignore=true


1
投票

JaCoCo-JaCoCo是Java的免费代码覆盖库,它是EclEmma团队基于多年使用和集成现有库的经验教训而创建的。

对于此过程,我们将使用git存储库下面的项目:

https://github.com/onlyfullstack/scalable-web-json-comparator

将此git项目克隆到您的本地系统中,并执行以下步骤:

步骤1:在属性部分下的pom.xml文件中,在JaCoCo配置下方添加

<sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin> <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis> <sonar.jacoco.reportPath>${project.basedir}/../target/jacoco.exec</sonar.jacoco.reportPath> <sonar.language>java</sonar.language> <jacoco.version>0.7.9</jacoco.version>

步骤2:在“插件”部分下的pom.xml文件中的JaCoCo插件下方添加

<plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>${jacoco.version}</version> <configuration> <skip>${maven.test.skip}</skip> <destFile>${basedir}/target/coverage-reports/jacoco-unit.exec</destFile> <dataFile>${basedir}/target/coverage-reports/jacoco-unit.exec</dataFile> <output>file</output> <append>true</append> <excludes> <exclude>*MethodAccess</exclude> </excludes> </configuration> <executions> <execution> <id>jacoco-initialize</id> <goals> <goal>prepare-agent</goal> </goals> <phase>test-compile</phase> </execution> <execution> <id>jacoco-site</id> <phase>verify</phase> <goals> <goal>report</goal> </goals> </execution> </executions> </plugin>

步骤3:从项目根文件夹(存在pom文件的地方)在mvn命令下面执行

mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Dmaven.test.failure.ignore=false

此命令将为我们创建JaCoCo报告,其中将在scalable-web-json-comparator \ scalable-web \ target \ coverage-reports \路径中包含代码覆盖率报告。代码覆盖率报告将在jacoco-unit.exec文件中。

步骤4:执行以下mvn命令将声纳报告推送到我们的sonarQube服务器。

mvn sonar:sonar -Dsonar.jacoco.reportPaths=target/coverage-reports/jacoco-unit.exec -Dsonar.projectName="scalable-web" -Dsonar.projectKey="scalable-web" -Dsonar.host.url=http://localhost:9000 -Dsonar.login=1c01ff3138588827f552cc6e7d4971ed004f5874

© www.soinside.com 2019 - 2024. All rights reserved.