【问题标题】:Java / mvn code coverage AND redundancy?Java / maven 代码覆盖率和冗余?
【发布时间】:2017-01-24 20:53:51
【问题描述】:

拥有一个通过 Surefire 和 Maven 运行 JUnit 测试的单一应用程序。我看到了几个可以告诉我代码覆盖率的选项,但我试图找到一些不同的东西:

具体来说,我想运行一个生成报告的 mvn 构建(或使用执行相同操作的 Eclipse 插件),这将使我能够查看哪些测试几乎都在做同样的事情,除了应用程序中覆盖范围不佳的部分。有这样的东西吗?

【问题讨论】:

    标签: java maven unit-testing code-coverage


    【解决方案1】:

    我没有介绍 冗余 部分,但是对于您可以使用 Jacoco 的覆盖范围,使用 maven 很容易设置:

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>3.6</version>
                </plugin>
            </plugins>
        </pluginManagement>
    
        <plugins>
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>0.7.7.201606060606</version>
                <executions>
                    <execution>
                        <id>default-prepare-agent</id>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
    
        </plugins>
    </build>
    
    <reporting>
        <excludeDefaults>true</excludeDefaults>
        <outputDirectory>${project.build.directory}/site</outputDirectory>
        <plugins>
    
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
            </plugin>
    
        </plugins>
    </reporting>
    

    要生成报告,请键入 mvn site。报告将在target/site 下创建。

    【讨论】:

      【解决方案2】:

      要与@alexbt 答案结合使用,您可以使用 Jacoco 提供的报告,但将该报告插入 SonarQube(您可以轻松地在本地安装)然后获取连接到本地 SonarQube 实例的 SonarLint Eclipse 插件以获取您想要的集成。

      此外,您还可以进行复制和粘贴检测以及一些冗余代码检查。我说 some 因为public 方法永远不会被标记为冗余。

      以下是有和没有重大问题的在线报告示例

      一个好处是你可以为你的团队集中规则。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-29
        • 2018-01-11
        • 1970-01-01
        • 1970-01-01
        • 2016-11-08
        • 2017-06-17
        相关资源
        最近更新 更多