【发布时间】:2015-08-16 08:23:41
【问题描述】:
我想知道如何链接生产代码和测试代码,即我想回答这个问题:哪些产品代码是这个测试代码的目标? 我想自动执行此操作。 我的项目使用 maven,我使用了 SonarQube,源代码是用 Java 编写的。 如果需要,我会尝试任何其他工具。 如何链接生产代码和测试代码? 请告诉我该怎么做。
【问题讨论】:
标签: java maven unit-testing junit sonarqube
我想知道如何链接生产代码和测试代码,即我想回答这个问题:哪些产品代码是这个测试代码的目标? 我想自动执行此操作。 我的项目使用 maven,我使用了 SonarQube,源代码是用 Java 编写的。 如果需要,我会尝试任何其他工具。 如何链接生产代码和测试代码? 请告诉我该怎么做。
【问题讨论】:
标签: java maven unit-testing junit sonarqube
您想要做的是有效地获得测试的覆盖率,回答“我的代码的哪些行/分支被我的测试覆盖? ”。
Maven 和 SonarQube 非常适合这种情况,您唯一需要添加的就是 Jacoco。关于 Jacoco/Junit 配置的一个很好的解释是 here。 Jacoco 是一个agent,它被添加到您的测试执行中并监控它们,分析哪些行/分支已被执行(覆盖)而哪些没有。
重要的部分是配置 jacoco 插件和 surefire/failsafe 插件(最后一个用于集成测试)以使用 jacoco。这将生成 jacoco 报告文件,然后 SonarCube 可以/将在 sonar:sonar 目标期间读取这些文件(您可能必须在 maven pom.xml 中将这些文件的路径设置为声纳属性或直接在 SonarQube 服务器中属性,两者都可以正常工作)。
您可以逐步测试它,首先让 jacoco 运行,因为它已经创建了漂亮的 html 报告。将报告读入 SonarQube 是比较容易的部分。
【讨论】: