更新SpecFlow场景大纲变体的名称

Caf*_*eek 9 naming scenarios specflow gherkin

我有这个功能文件:

Scenario Outline: Example
    Given I am a user
    When I enter <x> as an amount
    Then the result should be <result>
    Examples:
        | x | result |
        | 3 | 3      |
        | 1 | 1      |
Run Code Online (Sandbox Code Playgroud)

我的问题是,在运行之后,每个示例都标记为 variant #

有没有办法说明每个示例行实际测试的内容,以便在报告中我们更好地了解测试的内容,而不仅仅是:

Scenario: Example, Variant 0
Scenario: Example, Variant 1
Scenario: Example, Variant 2
Run Code Online (Sandbox Code Playgroud)

我正在努力帮助我们的测试人员获得更有意义的报告; 通常有一个原因是他们编写了多个示例,并且他们希望以某种方式显示该示例的原因.

Ben*_*ith 12

正如SpecFlow Scenario Outlines文档所述:

Gherkin语法并未强制所有示例列在场景大纲中都具有匹配的占位符,您甚至可以在示例集中引入任意列以获得更好的测试方法名称可读性

因此,您可以在"示例"表中引入任意列,以简洁地描述测试的意图,例如

Scenario Outline: Example
    Given I am a user
    When I enter <x> as an amount
    Then the result should be <result>
    Examples:
        | example description   | x | result |
        | Example Description 1 | 3 | 3      |
        | Example Description 2 | 1 | 1      |
Run Code Online (Sandbox Code Playgroud)

这将导致以下测试名称:

Example_ExampleDescription1
Example_ExampleDescription2
Run Code Online (Sandbox Code Playgroud)

  • 如果任何人在使用"变体"命名模式仍然使用"变体"命名模式时遇到问题,即使添加了标签列,也要确保其中的所有值都是唯一的!单个欺骗将导致它恢复. (4认同)
  • 我不明白这是如何运作的。我的测试名称总是描述完整的示例表行,例如测试名称是: NP10_New_Record_Details_Tab_Info("Prod010a","Product","01/10/2020","10.00",null) 如何让它只使用一个示例表测试名称中的列? (2认同)