ezsystems/allure-behat

用于与 Yandex Allure 报告工具配合使用的 Behat 输出格式化工具

v3.3.1 2023-02-28 13:56 UTC

README

这是一个 Behat 扩展,具有格式化器,可以生成用于 Yandex Allure 测试报告工具的报告数据。eZ Systems 对此进行了修改,引入了对 eZ Systems allure-php-commons 的需求。

安装

使用 Composer 安装,只需将 "ezsystems/allure-behat" 添加到 composer.json

...
"require": {
...
    "ezsystems/allure-behat": "~3.0.0",
...
},
...

用法

要在 Behat 中启用此扩展,请将其添加到 behat.yml 文件的 extensions 部分。要使用 Allure 格式化器,请将 allure 添加到您的格式化器列表中的 name

  formatters:
    pretty: true
    allure:
      output_path: %paths.base%/build/allure
  extensions:
    Allure\Behat\AllureFormatterExtension:
      severity_key: "severity:"
      ignored_tags: "tag_ignore"
      issue_tag_prefix: "JIRA:"
      test_id_tag_prefix: "BUG:"

这里

  • output_path - 定义报告 XML 数据的输出目录。默认为 ./allure-results
  • ignored_tags - 忽略报告中的场景标签的逗号分隔字符串或有效的 YAML 数组
  • severity_key - 带有此前缀的标签将被解释(如果可能)以定义报告中的场景严重性级别(默认为 normal)。
  • issue_tag_prefix - 带有此前缀的标签将被解释为问题标记,并为测试用例生成问题跟踪系统链接(使用 allure.issues.tracker.pattern 设置
  • test_id_tag_prefix - 带有此前缀的标签将被解释为测试用例 ID 标记,并为测试用例生成 TMS 链接(使用 allure.tests.management.pattern 设置

使用附件支持

要在 Allure 报告中包含附件,请确保您的 Behat 使用 Mink 运行测试

如果抛出的异常是 ArtifactExceptionInterface 的实例,则 Allure 可以处理您的上下文中抛出的异常,并从中获取屏幕截图路径。

它是如何工作的?

Behat 有以下测试结构

It has Features described in separate feature files
        Each Feature contains Scenarios
            Each scenario contains Steps

Allure 有稍微不同的层次结构

    Each report contains Test Suites
        A Test Suite contains Test Cases
            Every Test Case can contain one or more Steps

另一方面,Allure 还支持按功能、按故事或按严重性级别对测试用例进行分组。

Behat Allure 格式化器执行以下映射

  • Behat 测试运行 -> Allure 测试套件
  • Gherkin 场景(以及场景概要中的每个单个示例) -> Allure 测试用例
  • Gherkin 步骤 -> Allure 测试步骤

Behat 场景会注解其功能标题和描述,以便在 Allure 功能中进行分组。

Behat 还具有标签,它们也可以在 Allure 报告中使用

  • 如果标签出现在 ignored_tags 配置参数中,则它将被忽略,不会出现在 Allure 报告中
  • 如果标签以 severity_tag_prefix 开头,则格式化器将尝试将附加部分解释为可能的 Allure 严重性级别 之一
  • 如果标签以 test_id_tag_prefix 开头,则格式化器将解释附加部分为您的 TMS 的 测试用例 ID
  • 在其他所有情况下,标签将被解析为 Allure 故事注解

贡献?

请随意提交包含更改的 PR,但在那之前,请确保您通过了测试 ./vendor/behat/behat/bin/behat