Requirements Management

原文:https://docs.gitlab.com/ee/user/project/requirements/

Requirements Management

Introduced in GitLab Ultimate 12.10.

根据要求,您可以设置标准来检查产品. 它们可以基于用户,涉众,系统,软件或您认为重要的其他任何内容.

需求是 GitLab 中的工件,用于描述产品的特定行为. 需求是长期存在的,除非手动清除,否则它们不会消失.

如果行业标准要求您的应用程序具有某些功能或行为,则可以创建一个要求来反映这一点. 如果不再需要某个功能,则可以归档相关需求 .

有关概述,请参见GitLab 12.10 引入需求管理 .

requirements list view

Create a requirement

每个项目都有一个分页的需求清单,您可以在其中创建一个新需求.

创建需求:

  1. 在您的项目页面上,转到 要求 .
  2. Click 新要求.
  3. 输入描述性标题,然后单击创建需求 .

您将在列表顶部看到新创建的需求,因为需求列表按创建日期降序排列.

Edit a requirement

您可以从需求列表页面编辑需求(如果您具有必要的特权).

要编辑需求:

  1. 在需求清单中,按一下[ 编辑 ( ).
  2. 在文本输入字段中更新标题.
  3. Click 保存更改.

Archive a requirement

在” 打开”选项卡中时,可以存档一个未完成的需求(如果有必要的特权).

要存档需求,请点击存档 ( ).

需求存档后,它不再出现在” 打开”选项卡中.

Reopen a requirement

您可以在”已归档”选项卡中查看已归档需求的列表.

archived requirements list

要重新打开已归档的需求,请点击重新打开 .

重新打开需求后,它不再出现在” 归档”选项卡中.

Search for a requirement

Introduced in GitLab Ultimate 13.1.

您可以根据以下条件从需求列表页面中搜索需求:

  • 要求标题
  • 作者的用户名

要搜索需求:

  1. 在一个项目中,转到 需求>清单 .
  2. 单击搜索或过滤结果字段. 出现一个下拉菜单.
  3. 从下拉列表中选择需求作者或输入纯文本以按需求标题进行搜索.
  4. 在键盘上按Enter键以过滤列表.

您还可以通过以下方式对需求列表进行排序:

  • 创建日期
  • 最近更新时间

Allow requirements to be satisfied from a CI job

版本历史

GitLab 现在支持需求测试报告 . 您可以将作业添加到 CI 管道,该作业在触发时会将所有现有需求标记为”满足”.

Add the manual job to CI

要配置您的 CI 以在触发手动作业时将要求标记为”满足”,请将以下代码添加到.gitlab-ci.yml文件中.

  1. requirements_confirmation:
  2. when: manual
  3. allow_failure: false
  4. script:
  5. - mkdir tmp
  6. - echo "{\"*\":\"passed\"}" > tmp/requirements.json
  7. artifacts:
  8. reports:
  9. requirements: tmp/requirements.json

此定义将手动触发的( when: manual )作业添加到 CI 管道. 它阻止了( allow_failure: false ),但是由您决定触发 CI 作业的条件是什么. 另外,您可以使用任何现有的 CI 作业将所有需求标记为已满足,前提是 CI 作业生成并上传了requirements.json工件.

当您手动触发此作业时,包含{"*":"passed"}requirements.json文件将作为工件上传到服务器. 在服务器端,将检查需求报告中的”所有通过”记录( {"*":"passed"} ),并在成功后将所有现有的打开需求标记为”满意”.

Specifying individual requirements

可以指定个别要求及其状态.

如果存在以下要求:

  • REQ-1 (具有 IID 1
  • REQ-2 (具有 IID 2
  • REQ-3 (具有 IID 3

可以指定第一个要求通过,第二个失败. 有效值为”通过”和”失败”. 通过省略需求 IID(在这种情况下为REQ-3的 IID 3 ),没有发现结果.

  1. requirements_confirmation:
  2. when: manual
  3. allow_failure: false
  4. script:
  5. - mkdir tmp
  6. - echo "{\"1\":\"passed\", \"2\":\"failed\"}" > tmp/requirements.json
  7. artifacts:
  8. reports:
  9. requirements: tmp/requirements.json

Add the manual job to CI conditionally

要将 CI 配置为仅在有某些开放要求时才包括手动作业,请添加一条规则以检查CI_HAS_OPEN_REQUIREMENTS CI 变量.

  1. requirements_confirmation:
  2. rules:
  3. - if: "$CI_HAS_OPEN_REQUIREMENTS" == "true"
  4. when: manual
  5. - when: never
  6. allow_failure: false
  7. script:
  8. - mkdir tmp
  9. - echo "{\"*\":\"passed\"}" > tmp/requirements.json
  10. artifacts:
  11. reports:
  12. requirements: tmp/requirements.json