本主题解释如何设置和运行预提交代码审查流程,在此流程中,开发人员在提交代码到源代码控制 之前 提交代码以供审查。每次开发人员需要评审他们的代码时,他或她都会运行代码评审测试配置。此测试配置检测代码更改,并准备对其进行检查。 

本章包含:

  • 关于配置 post-commit code review 的更多详情,其是为那些希望在将代码添加到源代码控制之后进行评审的团队准备的,请查阅 配置和运行提交后代码审查扫描
  • 有关预提交、后提交和任务驱动工作流的详细信息,请查阅 Workflow Overview
  • 有关常规代码评审配置选项(适用于提交前和提交后流程的选项,请参阅 常规代码审查配置

配置概要

配置预提交代码审查需要:

为预提交代码评审配置测试配置

代码评审配置检测代码更改,并准备对其进行检查。我们建议配置一个测试配置,并使用团队服务器在整个团队中共享它。这简化了配置和更新。 

您可以创建一个专门用于代码评审的测试配置,或者拥有一个检查代码评审以及执行其他分析的测试配置。

若要配置检测代码更改的测试配置,并准备对其进行检查:

  1. 通过选择 Parasoft> Test Configurations 或选择 Test Using 工具栏按钮上下拉菜单中的 Test Configurations ,打开测试配置对话框。
  2. 复制现有的测试配置(例如,Built-in> Code Review> Pre-Commit) 或创建一个新的测试配置。
  3. 在 Scope 选项卡中,选择 Test only files added or modified locally
  4. 同样在 Scope 选项卡中,查看 File Filters> Path 选项设置,并根据需求对它们进行调整。 
  5. 如果报告首选项尚未设置为使用唯一的会话标记进行代码检查扫描,请进入 Common 选项卡,启用 Override Session Tag,然后选择其中一个预配置的标识符或指定自己的标识符。这个标签将被分配给所有源于这个测试配置的代码评审。
  6. 在 Code Review 选项卡顶部:
    1. 选择 Enable Code Review Scanner
    2. 如果希望报表包含所有可用团队扫描器的代码评审结果,请启用  Generate comprehensive report (includes all scanners)。此选项通常不用于预提交代码检查。如果未启用此功能,则报告将只包含指定会话标记的结果。
    3. 如果想要评审任务在运行此测试配置后自动“发布”(上传),请启用 Auto publish reviews  预提交代码检查推荐这样做。
    4. 在 Generate tasks with priority 框中,指明了应分配给使用此测试配置创建的所有代码评审任务的优先级。
  7. (可选)如果希望自动分配审查,请使用 Authors、 Reviewers、 Monitors和 Filters 选项卡来定义希望分配代码评审的方式。评审人员和监视器可以分配给特定的作者,或者分配给特定的项目区域。如果此处没有指定选项,则每个作者需要为每个提交的评审选择适当的审阅人。
  8. (可选)在 Code Review> Filters 选项卡中,如果需要,修改以下选项:
  9. 单击 Apply ,提交新的测试配置。
  10. 通过右键单击该选项,然后从快捷菜单选择 Upload to Team Server 以共享测试配置。

提交代码审查 - 互动桌面执行

每个开发人员在完成新的/修改过的代码后,应执行以下步骤,以备检讨:

  1. 在项目树中,选择表示要查看的更改的节点。
  2. 运行指定的代码评审测试配置。这应该在团队类别中。
  3. 如果启用了代码评审首选项面板中的 Show user assistant during scanner run 选项(强烈推荐),那么 SOAtest 将显示代码评审助手。

    code_review_2.png

    您可以使用该对话框来:
  4. 如果您的代码评审测试配置没有启用 Auto publish reviews ,那么将结果上传至团队服务器,如下所示:

然后,将通知指定的审阅人员代码已准备好进行审阅。评审员可以按照 审阅者 - 审查代码修改中所描述执行评审。

评审完成后,作者可以按照 作者 - 审查和回应审查意见中所描述做出响应。

向代码评审包添加新文件

若要将选定的文件添加到现有的代码评审包中:

  1. 在项目树中,右键单击要向其添加文件的包,然后从快捷菜单选择 Parasoft> Add to> Code Review 。
  2. 完成“代码评审助手”对话框。

使用属性文件定义审阅者、作者和监视器

除了在测试配置中直接指定代码评审用户,并在代码评审助手对话框中“实时”添加评审人员之外,您还可以在 .properties 文件中定义代码评审用户。如果您的评审过程涉及大量的团队成员,并且您可以自动生成团队成员的数据库,那么这将非常有用。

若要使用属性文件定义审阅器:

  1. 请准备空的属性文件 config.properties
  2. 将以下初始所需数据添加到其中:

    com.parasoft.xtest.checkers.api.config.name=Base Code Review 
    com.parasoft.xtest.checkers.api.config.tool=3
     
    com.parasoft.xtest.codereview.scanner.checksum=fixed
  3. 开始定义用户列表(要么手动定义,要么使用自定义脚本自动提取适当的信息)。每个用户必须有一个索引,然后是属性,如名称、角色和监视的位置(仅适用于监视器)。可用的角色有 'a' (作者), 'm' (监视器), 'r' (审阅者)。例如:

    com.parasoft.xtest.codereview.scanner.crusers.0.name=tom
    com.parasoft.xtest.codereview.scanner.crusers.0.roles=r
    com.parasoft.xtest.codereview.scanner.crusers.1.name=bob
    com.parasoft.xtest.codereview.scanner.crusers.1.roles=r
    com.parasoft.xtest.codereview.scanner.crusers.2.monitored.locations=**/src/**, **/include/**
    com.parasoft.xtest.codereview.scanner.crusers.2.name=joe 
    com.parasoft.xtest.codereview.scanner.crusers.2.roles=am 
    com.parasoft.xtest.codereview.scanner.crusers.3.name=bill 
    com.parasoft.xtest.codereview.scanner.crusers.3.roles=a
  4. 在专用 HTTP 服务器上发布准备好的文件。如果要基于用户数据库自动重新生成此文件,请使用允许此类重新生成的文件位置。
  5. 打开测试配置对话框,通过复制“预提交”测试配置创建新的配置。
  6. 右键单击该测试配置,选择 New Child,然后将 URL 地址键入 HTTP 父配置。
  7. 刷新测试配置管理器,并验证是否显示了任何添加的监视器。
  8. 在团队服务器上发布它。

下面是一个示例属性文件:

com.parasoft.xtest.codereview.scanner.crusers.13.roles=arm
com.parasoft.xtest.codereview.scanner.crusers.13.name=dave
com.parasoft.xtest.codereview.scanner.crusers.13.reviewers=mark_A, mark_B
com.parasoft.xtest.codereview.scanner.crusers.13.monitors=mike
com.parasoft.xtest.codereview.scanner.crusers.13.reviewed.locations=**/test/*.txt, project_A/**
com.parasoft.xtest.codereview.scanner.crusers.13.monitored.locations=/**
 
com.parasoft.xtest.codereview.scanner.checksum=fixed

注意:

将提交后扫描添加到提交前流程

有些通过预提交过程提交代码供评审的团队也喜欢执行提交后的夜间扫描,以便:

有关如何实现此功能的详细信息,请查阅 Running Post-Commit Scans with a Pre-Commit