首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为Sonar增加jacoco集成测试覆盖范围

为Sonar增加jacoco集成测试覆盖范围
EN

Stack Overflow用户
提问于 2015-10-18 15:23:39
回答 2查看 872关注 0票数 0

背景:我有两个独立的java项目,称为A和B。项目A是实际产品(war应用程序),带有单元测试。Gradle构建项目,然后运行声纳分析,我可以在Sonar中看到单元测试的覆盖范围。项目B是对第一个项目的集成测试。它由Jenkins在构建项目A并将其部署到集成环境后在管道中运行。部署还涉及到对代码进行检测,以便jacoco报告与Project的类相关联。

我的问题是:作为第二步,我如何添加到项目A的声纳页面,该页面目前只有单元测试覆盖,集成测试覆盖范围?

我需要的流程是:

  1. 建设项目A
  2. 在项目A上运行声纳分析(现在它将在声纳页面显示单元测试覆盖率)
  3. 建设项目B
  4. 对项目B进行声纳分析--这将简单地增加声纳项目A的集成覆盖范围

现在不管用了。当我对项目B进行声纳分析时,它会扰乱项目A的声纳页面,删除A的单元测试覆盖范围。

我现在正在工作的流程,但我想改变的是:

  1. 建设项目A
  2. A项目运行声纳分析
  3. 建设项目B
  4. 在项目B上运行jacoco报告,这会将jacoco-it.exec文件输出到磁盘上的特定位置。
  5. 在项目A上运行声纳分析(它具有从指定位置获取jacoco-it.exec文件的设置)
  6. 现在项目A的声纳页面将显示单元测试和集成测试覆盖范围,但是步骤5是完全多余的,我想避免它。

有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2015-10-19 08:29:23

我的建议有点不同:

  • 使用一些构建自动化工具
  • 创建一个声纳“检查器”工作,它不能进行充分的分析;只是增量式的,当添加质量门断路器问题时,这应该会中断。
  • 为您的A项目创建一个包含完整分析的夜间工作:-Dsonar.analysis.mode=analysis (注意:我的经验表明,在这种情况下,您必须在此分析之前运行增量,因为在分析模式中,声纳接受新的质量门断路器问题
  • 我不认为集成测试应该包括在项目测试覆盖率中,所以这可能会被忽略。
票数 0
EN

Stack Overflow用户

发布于 2015-10-19 12:35:57

您不能修改以前的分析,这就是为什么您的“B”任务似乎取代了单元测试编号。您需要做的是在分析之前生成集成测试覆盖率报告,并使该报告可用,以便可以在相同的分析中读取单元测试和集成测试编号。

从构建管道的角度来看,这可能会变得很棘手,这取决于您需要如何构造这些作业,但从表面上看,您需要3个工作:

  1. 建设项目A
  2. 构建项目B&生成集成测试报告
  3. 作业3从作业2中提取集成测试报告,或者重新构建项目A,或者从作业1中提取代码、类和单元测试报告并执行分析
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33199693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档