Specflow - 场景大纲测试被忽略

Posted

技术标签:

【中文标题】Specflow - 场景大纲测试被忽略【英文标题】:Specflow - Scenario Outline tests are being ignored 【发布时间】:2020-03-10 18:40:52 【问题描述】:

我正在使用 Selenium 和 Specflow 开发测试自动化,但是当我尝试运行我的 Scenario Outline 时,它​​被完全忽略了。 我已经尝试过调试它并且 none 的步骤被执行,我不知道为什么。 常见场景工作得很好。 我在 Visual Studio Code 中使用 .NET Core 2.2。我目前的测试 Runner 是 NUnit 版本 3.12.0,而我的 Specflow 版本是 3.0.225。常规场景没有出现这样的问题。

@FilterScenario
Scenario Outline: Validating filter box and grid results
    Given I accessed the screen
    And the filter box is on
    When I select the groups <TypeGroup1>, <TypeGroup2>, <TypeGroup3>
    And select the teams <TypeTeam1>, <TypeTeam2>, <TypeTeam3>
    And click the Apply button
    Then the grid should show me only results that match groups <TypeGroup1>, <TypeGroup2>, <TypeGroup3> and teams <TypeTeam1>, <TypeTeam2>, <TypeTeam3>

    Examples:
    | TypeGroup1 | TypeGroup2 | TypeGroup3 | TypeTeam1  | TypeTeam2  | TypeTeam3  |
    | Type 1     |            |            | Type 1     |            |            | 
    | Type 1     | Type 2     | Type 3     | Type 1     | Type 2     | Type 3     |
    |            |            |            | Type 1     |            |            | 

我的项目中包含的软件包:

    <PackageReference Include="Microsoft.Extensions.Configuration" Version="3.0.0" />
    <PackageReference Include="Newtonsoft.Json" Version="12.0.2" />
    <PackageReference Include="nunit" Version="3.12.0" />
    <PackageReference Include="NUnit3TestAdapter" Version="3.13.0" />
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.2.0" />
    <PackageReference Include="Selenium.Support" Version="3.141.0" />
    <PackageReference Include="Selenium.WebDriver" Version="3.141.0" />
    <PackageReference Include="Specflow" Version="3.0.225" />
    <PackageReference Include="Specflow.Assist.Dynamic" Version="1.4.1" />
    <PackageReference Include="Specflow.NUnit" Version="3.0.225" />
    <PackageReference Include="SpecFlow.Tools.MsBuild.Generation" Version="3.0.225" />

【问题讨论】:

您使用的是哪个单元测试提供程序?您使用的是哪个版本的 SpecFlow NuGet 包?如果您更改常规的Scenario,在运行该测试时您会看到更改吗? 我使用的是 NUnit 版本 3.12.0,我的 Specflow 版本是 3.0.225。是的,我知道,常规场景没有显示出任何这样的问题。 您可以将此信息添加到您的问题中吗?放入cmets太容易漏掉了。 你安装了哪些 NuGet 包? 当然!刚刚做到了:) 我也将包添加到问题中。 【参考方案1】:

你的功能文件有问题。

@FilterScenario
Scenario Outline: Validating filter box and grid results
    Given I accessed the screen
    And the filter box is on
    When I select the groups '<TypeGroup1>', '<TypeGroup2>', '<TypeGroup3>'
    And select the teams '<TypeTeam1>', '<TypeTeam2>', '<TypeTeam3>'
    And click the Apply button
    Then the grid should show me only results that match groups '<TypeGroup1>', '<TypeGroup2>', '<TypeGroup3>' and teams '<TypeTeam1>', '<TypeTeam2>', '<TypeTeam3>'

    Examples:
    | TypeGroup1 | TypeGroup2 | TypeGroup3 | TypeTeam1  | TypeTeam2  | TypeTeam3  |
    | Type 1     |            |            | Type 1     |            |            | 
    | Type 1     | Type 2     | Type 3     | Type 1     | Type 2     | Type 3     |
    |            |            |            | Type 1     |            |            |

重新生成stepdef并重试

【讨论】:

以上是关于Specflow - 场景大纲测试被忽略的主要内容,如果未能解决你的问题,请参考以下文章

Specflow:对场景和场景大纲使用相同的步骤定义

Specflow 场景大纲未按预期工作

您可以在 SpecFlow 的场景大纲中标记各个示例吗?

如何在下拉列表中选择与 specflow 大纲值相同的值

具有多个场景的 Specflow 场景大纲

Specflow - 场景大纲不会生成示例步骤