Java / mvn 代码覆盖和冗余?
Java / mvn code coverage AND redundancy?
有一个单体应用程序,运行s JUnit 通过 Surefire 和 Maven 进行测试。我看到有几个选项可以告诉我有关代码覆盖率的信息,但我正在尝试寻找一些不同的东西:
具体来说,我想 运行 生成报告的 mvn 构建(或使用执行相同操作的 Eclipse 插件),这将给我一种查看几乎所有测试都在做什么的方法同样的事情,此外 应用程序中没有很好覆盖的部分。有这样的东西吗?
我没有涵盖 冗余 部分,但对于覆盖范围,您可以使用 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
.
下创建
要结合@alexbt 的回答,您可以利用 Jacoco 的报告,但将该报告插入 SonarQube(您可以轻松地在本地安装),然后获取连接到本地 SonarQube 的 SonarLint Eclipse 插件实例以获得您想要的集成。
此外,您还可以进行复制和粘贴检测以及一些 冗余代码检查。我说 some 因为 public
方法永远不会被标记为冗余。
以下是有和没有重大问题的在线报告示例
- https://sonarcloud.io/dashboard?id=org.apache.maven:maven
- https://sonarqube.com/dashboard?id=net.trajano.mojo:batik-maven-plugin
- https://sonarcloud.io/component_measures/domain/Coverage?id=net.trajano.jetng:jetng
一个好处是你可以为你的团队集中规则。
有一个单体应用程序,运行s JUnit 通过 Surefire 和 Maven 进行测试。我看到有几个选项可以告诉我有关代码覆盖率的信息,但我正在尝试寻找一些不同的东西:
具体来说,我想 运行 生成报告的 mvn 构建(或使用执行相同操作的 Eclipse 插件),这将给我一种查看几乎所有测试都在做什么的方法同样的事情,此外 应用程序中没有很好覆盖的部分。有这样的东西吗?
我没有涵盖 冗余 部分,但对于覆盖范围,您可以使用 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
.
要结合@alexbt 的回答,您可以利用 Jacoco 的报告,但将该报告插入 SonarQube(您可以轻松地在本地安装),然后获取连接到本地 SonarQube 的 SonarLint Eclipse 插件实例以获得您想要的集成。
此外,您还可以进行复制和粘贴检测以及一些 冗余代码检查。我说 some 因为 public
方法永远不会被标记为冗余。
以下是有和没有重大问题的在线报告示例
- https://sonarcloud.io/dashboard?id=org.apache.maven:maven
- https://sonarqube.com/dashboard?id=net.trajano.mojo:batik-maven-plugin
- https://sonarcloud.io/component_measures/domain/Coverage?id=net.trajano.jetng:jetng
一个好处是你可以为你的团队集中规则。