如何使用sonarQube、maven 或其他工具link 生产代码和测试代码?
How can I link production code and test code by using sonarQube, maven, or other tools?
我想知道如何link生产代码和测试代码,即我想回答这个问题:哪些产品代码是这个测试代码的目标?
我想自动执行此操作。
我的项目使用maven,我使用过SonarQube,源代码写在Java。
如果需要,我会尝试任何其他工具。
我如何link生产代码和测试代码?
请告诉我该怎么做。
您想要做的是有效地获得测试的覆盖率,即"What lines/branches of my code are covered by my tests?".
问题的答案
Maven 和 SonarQube 非常适合这个,您唯一需要添加到组合中的是 Jacoco。 Jacoco/Junit 的配置的一个很好的解释是 here. Jacoco is an agent 被添加到测试的执行中并监视它们,分析哪些 lines/branches 已被执行(覆盖),哪些尚未执行。
重要的部分是配置 jacoco 插件和 surefire/failsafe 插件(最后一个用于集成测试)以使用 jacoco。这将生成 jacoco 报告文件,然后 can/will 在 sonar:sonar
目标期间被 SonarCube 读取(您可能必须在 Maven pom.xml 中将这些文件的路径设置为声纳 属性 或直接在 SonarQube 服务器属性中,都可以正常工作)。
您可以逐步测试它,首先让 jacoco 进入 运行,因为它已经创建了很好的 html 报告。将报告读入 SonarQube 是比较容易的部分。
我想知道如何link生产代码和测试代码,即我想回答这个问题:哪些产品代码是这个测试代码的目标? 我想自动执行此操作。 我的项目使用maven,我使用过SonarQube,源代码写在Java。 如果需要,我会尝试任何其他工具。 我如何link生产代码和测试代码? 请告诉我该怎么做。
您想要做的是有效地获得测试的覆盖率,即"What lines/branches of my code are covered by my tests?".
问题的答案Maven 和 SonarQube 非常适合这个,您唯一需要添加到组合中的是 Jacoco。 Jacoco/Junit 的配置的一个很好的解释是 here. Jacoco is an agent 被添加到测试的执行中并监视它们,分析哪些 lines/branches 已被执行(覆盖),哪些尚未执行。
重要的部分是配置 jacoco 插件和 surefire/failsafe 插件(最后一个用于集成测试)以使用 jacoco。这将生成 jacoco 报告文件,然后 can/will 在 sonar:sonar
目标期间被 SonarCube 读取(您可能必须在 Maven pom.xml 中将这些文件的路径设置为声纳 属性 或直接在 SonarQube 服务器属性中,都可以正常工作)。
您可以逐步测试它,首先让 jacoco 进入 运行,因为它已经创建了很好的 html 报告。将报告读入 SonarQube 是比较容易的部分。