【问题标题】:How can I link production code and test code by using sonarQube, maven, or other tools?如何使用 sonarQube、maven 或其他工具链接生产代码和测试代码?
【发布时间】:2015-08-16 08:23:41
【问题描述】:

我想知道如何链接生产代码和测试代码,即我想回答这个问题:哪些产品代码是这个测试代码的目标? 我想自动执行此操作。 我的项目使用 maven,我使用了 SonarQube,源代码是用 Java 编写的。 如果需要,我会尝试任何其他工具。 如何链接生产代码和测试代码? 请告诉我该怎么做。

【问题讨论】:

    标签: java maven unit-testing junit sonarqube


    【解决方案1】:

    您想要做的是有效地获得测试的覆盖率,回答“我的代码的哪些行/分支被我的测试覆盖? ”。

    Maven 和 SonarQube 非常适合这种情况,您唯一需要添加的就是 Jacoco。关于 Jacoco/Junit 配置的一个很好的解释是 here。 Jacoco 是一个agent,它被添加到您的测试执行中并监控它们,分析哪些行/分支已被执行(覆盖)而哪些没有。

    重要的部分是配置 jacoco 插件和 surefire/failsafe 插件(最后一个用于集成测试)以使用 jacoco。这将生成 jacoco 报告文件,然后 SonarCube 可以/将在 sonar:sonar 目标期间读取这些文件(您可能必须在 maven pom.xml 中将这些文件的路径设置为声纳属性或直接在 SonarQube 服务器中属性,两者都可以正常工作)。

    您可以逐步测试它,首先让 jacoco 运行,因为它已经创建了漂亮的 html 报告。将报告读入 SonarQube 是比较容易的部分。

    【讨论】:

    • 感谢您给我的建议!!但是,我很想知道哪些测试代码测试哪些产品代码来提高软件质量。例如,有一个测试覆盖率低的产品代码,有数百个单元测试代码。然后,一个问题出现了:哪个测试代码测试这个产品代码?不回答这个问题,就无法提高产品代码的覆盖率吧?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-02
    • 1970-01-01
    • 2014-04-28
    • 1970-01-01
    • 2017-05-26
    相关资源
    最近更新 更多