eclemma_分阶段采用EclEmma和Rational Team Concert集成

EclEmma与IBM Rational Team Concert之间的集成有很多好处,并且这些好处会影响整个团队。 集成有助于团队提高代码覆盖率,从而提高代码质量并减少缺陷数量。 因为这:

  • 开发团队生产的代码具有较高的代码覆盖率。
  • 测试团队可以自由地专注于代码是否满足业务目标,而不是被许多低级代码缺陷所阻塞。

要理解本教程中的概念,熟悉初始的EclEmma和Rational Team Concert集成工具会有所帮助。 有关更多信息,请阅读通过集成eclEmma和Rational Team Concert来提高单元测试的质量

代码覆盖率顾问是一个Rational Team Concert流程扩展,可以防止在代码覆盖率不足的情况下交付代码,从而帮助团队提高代码质量。 本教程描述了集成工具新版本中的改进。 下载资源部分包含从该工具的最新增强功能中受益所需的其他文件。

何时使用Code Coverage Advisor

使用代码覆盖率顾问:

  • 对于一个新项目,要确保单元测试提供足够的代码覆盖率。 在这种情况下,请使用顾问来帮助开发团队以与编码相同的节奏进行单元测试。 这样可以更轻松地达到最高级别的代码覆盖率。
  • 对于单元测试不佳或不存在的现有项目,可帮助团队逐步提高单元测试和代码覆盖率。

在这两种情况下,Code Coverage Advisor都可以帮助团队通过保持单元测试的高水平代码覆盖率来提高代码质量。 配置代码覆盖率并运行应用程序之后,Code Coverage Advisor会查看所交付文件的覆盖率,以确定它们是否具有令人满意的代码覆盖率。 如果覆盖率低于目标级别或未为项目启用代码覆盖率,则无法交付代码。 如果发生这种情况,开发人员必须在交付代码之前提高覆盖率。 您可以将顾问程序设置为仅检查新行或修改行的覆盖范围。 设置此检查后,仅检查新插入或修改的代码行的代码覆盖率。 将新代码/修改代码的覆盖率百分比与团队流程中设置的阈值进行比较。

选择仅检查新的或修改的行以**此设置:

图1.设置仅**新行或修改行的coverage
eclemma_分阶段采用EclEmma和Rational Team Concert集成

查看全尺寸图片

eclemma_分阶段采用EclEmma和Rational Team Concert集成

例如,如果您修改HelloWorld.java类,但它不满足覆盖率要求,那么Coverage Advisor会告诉您覆盖率的百分比。 在图2中,覆盖率为73.6%。

图2.代码覆盖率状态
eclemma_分阶段采用EclEmma和Rational Team Concert集成

查看全尺寸图片

eclemma_分阶段采用EclEmma和Rational Team Concert集成

图3显示了与交付时间中的新行或修改行比较的覆盖范围。

图3.新行/修改行的代码覆盖率
eclemma_分阶段采用EclEmma和Rational Team Concert集成

查看全尺寸图片

eclemma_分阶段采用EclEmma和Rational Team Concert集成

Team Advisor视图中的coverage错误与Coverage视图不同,这是因为Team Advisor视图基于“仅检查新行或修改过的行”设置。 在测试路径中添加新行或修改过的行有助于您达到目标覆盖率级别。

允许在代码覆盖率不足的情况下交货

有时,无论代码覆盖率的高低,都相信开发人员交付“高质量”代码对于准备好代码很重要。 这通常发生在以下情况下:对于项目而言,在以良好的状态进行单元测试之前交付代码更为关键。 为了允许开发人员交付不满足目标代码覆盖率级别的代码,可以设置过程设置,以便顾问程序:

  • 允许交付,但跟踪相关工作项上的代码覆盖级别
  • 如果存在所需的批准,则允许交付代码

在代码覆盖率不足的情况下跟踪交付

如果无论代码覆盖水平如何都必须交付代码,团队负责人开发人员可以选择允许交付并跟踪相关工作项中已更改集合的状态。

为此,请选择“ 允许交货,并且仅使用代码覆盖率状态更新关联的工作项”

图4.允许带有跟踪选项的交货
eclemma_分阶段采用EclEmma和Rational Team Concert集成

查看全尺寸图片

eclemma_分阶段采用EclEmma和Rational Team Concert集成

选择此选项时,无论代码覆盖率的级别如何,都允许传递。 但是,如果覆盖范围小于要求的级别,则会将注释和code_coverage_failed标记添加到关联的工作项:

图5.跟踪工作项中的消息
eclemma_分阶段采用EclEmma和Rational Team Concert集成

查看全尺寸图片

eclemma_分阶段采用EclEmma和Rational Team Concert集成

这种方法使团队的主要开发人员可以快速搜索测试覆盖范围不合格的任何工作项。 团队负责人可以决定覆盖范围是否可以接受,或者是否需要安排更多工作来清理覆盖范围。 它还允许在以后的阶段进行分析,以查看覆盖范围较小的工作项是否具有较高的缺陷密度。

在代码覆盖率不足的情况下交付代码

即使覆盖范围较低,如果设置了所需的批准,您也可以交付代码更改。 为此,您需要在每个关联的工作项中获得“忽略代码覆盖率”的批准(参见图6)。 确保未选中“允许交付并且仅使用代码覆盖状态更新关联的工作项”复选框。

图6.忽略代码覆盖率批准请求
eclemma_分阶段采用EclEmma和Rational Team Concert集成

查看全尺寸图片

eclemma_分阶段采用EclEmma和Rational Team Concert集成

如果代码覆盖范围不足且批准未处于必需状态,则顾问程序会给您一个错误:

图7.忽略代码覆盖率错误
eclemma_分阶段采用EclEmma和Rational Team Concert集成

查看全尺寸图片

eclemma_分阶段采用EclEmma和Rational Team Concert集成

实施代码覆盖率顾问

要在您自己的环境中实现此方法, 从Eclipse更新站点安装eclEmma 您需要的其余文件位于“可下载资源”部分。

该代码是在IBMBluemix®DevOps Services上的开放Rational Team Concert实例中开发的。 如果您想要增强功能,或者想要为顾问做出贡献,请联系本教程的作者或Steve Arnold ,或者在eclEmma Rational Team Concert代码覆盖率顾问项目中打开一个工作项。


翻译自: https://www.ibm.com/developerworks/rational/library/rational-EclEmma-and-RTC-integration-trs/index.html