gpt4 book ai didi

c# - Specflow:为许多场景大纲维护一个示例表

转载 作者:行者123 更新时间:2023-11-30 12:57:38 25 4
gpt4 key购买 nike

有没有办法将“示例”数据表保存在与场景大纲不同的文件中?

我想要实现的是每个浏览器运行一次整个场景,一个接一个地运行。

我有以下功能:

Feature: OpenGoogleInChrome

Scenario Outline: Open Google in Chrome
Given a browser '<browser>'
When the browser points to 'https://www.google.co.uk/'
Then the title should be 'Google'

Examples:
| browser |
| Chrome |
| Edge |
| Firefox |

但是,如果我添加另一个浏览器,这将意味着在每个测试中都维护示例表。是否可以从每个场景大纲中引用单个“示例”表?

或者从步骤定义中调用带有示例表的场景大纲?

(将 Specflow 和 Selenium WebDriver 与 NUnit 结合使用)

虽然“背景”允许您定义共享表,但它似乎是针对具有多个场景的单个功能。我正在寻找的是一种在不同 (.feature) 文件的每个功能中使用相同表格的方法。

根据经验,我知道使用@Chrome 之类的标签可以适用于单个浏览器(这就是我编写大部分测试的方式)但是使用多个标签会导致所有浏览器同时运行,而不是一个接一个地运行.

最佳答案

我认为最可维护的方法是在运行测试之前通过设置环境变量来参数化所使用的浏览器。在你的里面Given步骤定义,可以使用Environment.GetVariable("...")在运行时检索值。

另一种方法是创建一个特殊的文本文件,其中包含要使用的浏览器的名称。打开此文件并阅读 Given 中的内容步骤定义。

如果您有一个自动构建,您可以设置一个 power shell 或批处理文件,将此文本文件设置为第一个浏览器,运行所有测试,然后将文本文件设置为下一个浏览器并重新运行测试。冲洗并重复您要使用的每个浏览器。

你可以把它扔进 <appSettings>在 Visual Studio 中测试项目并利用配置转换。从命令行运行 NUnit 测试时,您可以切换配置:

nunit-console nunit.tests.csproj /config:Firefox
nunit-console nunit.tests.csproj /config:InternetExplorer
nunit-console nunit.tests.csproj /config:Chrome
nunit-console nunit.tests.csproj /config:Safari

缺点是您为每个浏览器创建一个构建配置,但它应该可以解决问题。

关于c# - Specflow:为许多场景大纲维护一个示例表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33349847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com