2

我一直在使用黄瓜一段时间,我偶然发现了一个问题:

实际问题:

是否有解决方案可以使用黄瓜作为示例从单个文件/数据库中导入示例?或者,有没有办法在已经同步的情况下定义一个变量作为示例?或者,当我启动功能文件/场景时,是否可以选择将示例作为变量发送?

问题:

我有几个场景,我想一遍又一遍地使用完全相同的例子。

这听起来很简单,但是示例表非常大(更具体地说,它包含了世界上所有的国家及其相应的大陆)。因此重复它会很麻烦,特别是如果表需要更改(我需要单独更改表的所有实例)

并发症:

我有一个重新运行函数,它知道特定示例何时失败并在测试完成后重新运行它。

限制:

我不想编辑我的重播文件

有关的:

我注意到这里已经有关于从 csv 导入它的公开讨论: Importing CSV as test data in Cucumber?

然而,这个讨论对我来说是无效的,因为我有 rerun 函数,它只知道只能使用示例,而那里建议的解决方案破坏了它。

谢谢!

4

1 回答 1

0

您可以使用不同的BDD 语法将 CSV 和其他外部文件系统与QAF一起使用。

如果你想使用 cucumber step 或 cucumber runner,你可以使用QAF-cucumber和 BDD2(首选)或 Gherkin 语法。QAF-cucumber 将启用 cucumber 的外部测试数据和其他 qaf 功能。

下面是使用 BDD2 语法的示例功能文件,可以使用TestNGCucumber runner 运行。

Feature: feature uses external data file

@datafie:resources/${env}/testdata.csv
@regression 
Scenario:  Another scenario exploring different combination using data-provider
    Given a "${precondition}"
    When an event occurs
    Then the outcome should "${be-captured}"   

testdata.csv文件可能如下所示:

TestcaseId,precondition,be-captured
123461,abc,be captured
123462,xyz,not be captured

您可以使用TestNGCucumber runner 运行。您也可以使用任何内置数据提供程序自定义

于 2019-12-22T02:35:58.400 回答