Cucumber-js: 场景大纲与多个示例

创建于 2018-06-06  ·  16评论  ·  资料来源: cucumber/cucumber-js

你好,
首先,非常感谢有这个 JS Gherkin 实现。

我的问题:
我有一些例子的场景大纲。 这个场景包含使用一些 url 获取端点的步骤,我想在这个场景大纲中还有另一个带有 url 参数的示例。
然后我想根据第一个示例与另一个示例相乘来运行场景。 因此,如果第一个示例有 4 行,第二个 4 行 = 4 x 4 = 16 次运行。

基本一样
https://github.com/Behat/Behat/issues/1082

最有用的评论

https://github.com/Behat/Behat/issues/1082是只执行最后一个示例表。 我认为这与乘法示例表是分开的。

填写示例。 您是否要求以下内容:

Scenario Outline:
  Given <a> and <b>

  Examples:
    | a  |
    | a1 |
    | a2 |
    | a3 |
    | a4 |

  Examples:
    | b  |
    | b1 |
    | b2 |
    | b3 |
    | b4 |

它运行 16 个场景,组合 a1/b1、a1/b2、a1/b3、a1/b4、a2/b1 等。如果我们要支持这样的事情,我认为我们需要不同的关键字而不是重载示例此设置当前变为 8 个场景,其中第一个 4 b 未定义,第二个 4 a 未定义。

所有16条评论

我很惊讶这已经不起作用了。 它绝对适用于 Java 和 Ruby ......

我同意它应该被执行。

https://github.com/Behat/Behat/issues/1082是只执行最后一个示例表。 我认为这与乘法示例表是分开的。

填写示例。 您是否要求以下内容:

Scenario Outline:
  Given <a> and <b>

  Examples:
    | a  |
    | a1 |
    | a2 |
    | a3 |
    | a4 |

  Examples:
    | b  |
    | b1 |
    | b2 |
    | b3 |
    | b4 |

它运行 16 个场景,组合 a1/b1、a1/b2、a1/b3、a1/b4、a2/b1 等。如果我们要支持这样的事情,我认为我们需要不同的关键字而不是重载示例此设置当前变为 8 个场景,其中第一个 4 b 未定义,第二个 4 a 未定义。

@aslakhellesoy正在乘以在 java/ruby 中工作的示例表? Cucucumber-js 正确处理单个场景大纲的多个示例表。

从我从 Behat 票中获得的信息来看,他们想要实现的不是乘以表格,而是根据他们表达的内容对示例进行分组:

    Examples: of ordinary Latin character inputs
      | input |
      | a     |
      | z     |
      | 0     |

    Examples: of Unicode inputs
      | input  |
      | U+0046 |
      | U+0058 |

    Examples: of invalid inputs
      | input  |
      | <      |
      | </     |

而不是复合:

    Examples: Usernames
         | username   |
         | admin      |
         | user       |
         | maintainer |
         | moderator  |

    Examples: Passwords
         | password |
         | valid    |
         | invalid  |

虽然我可能是错的

我误读了“多个”示例表,这很有效。 乘法示例表(矩阵乘法?)不起作用。 我认为这对人们来说有点难以理解。

您是否考虑过成对生成较小的表?

很抱歉通过张贴 Behat 票误导您。 即使使用不同的关键字,我也完全需要 charlierudolph 所写的内容。

谢谢。

@znevrly我同意在针对当前示例时,将所有内容相乘会令人困惑。 我认为成对是理想的解决方案,因为您可以缩小到一组有代表性的测试用例。 @aslakhellesoy你认为我们想在小黄瓜中成对地建造一些东西吗? (如果我们能确定一个漂亮的界面)

我不认为我们应该成对地构建小黄瓜 - 那将是功能蠕变。 我认为最好使用独立工具生成表格,然后将其粘贴到特征文件中。

这听起来不是很舒服。 有任何想法吗? :)

关于什么的任何想法?

有一些关键字来实现描述的行为(乘以示例表或矩阵乘法)而无需手动生成表。

您是否意识到您只需要运行一次成对工具即可生成一个表格以粘贴到场景大纲中? 我不确定是什么让你对此感到不舒服。

但是我有很多场景的特征文件。 在“第二个”示例表的情况下,将只是许多复制粘贴,并且很清楚何时完成。 如果“第二个”示例表中会有额外的行,我不需要重新生成所有合并表。

如果存在所有可能的组合,则生成的表的更多信息不是很清楚。 :(

我们可能会在某个时候添加一个 Gherkin 预处理器 API。 当我们这样做时,我认为您要求的功能应该使用该 API 来实现。 目前这不是优先事项,所以如果这对您来说很紧急,我建议您自己生成 Gherkin 文件。

我怎么会在示例中使用此-电子邮件应在格式“FIRST_NAME。 [email protected]

是否可以仅从示例表中选择一种方案? 可以说我有

A| 乙 | C|
| 捆绑 | '高清' | '小水电' |
| PZ | '高清' | '小水电' |

如果从一个特征文件(比如 helloWorld.feature)我调用另一个特征(Print.feature)文件,该文件具有上表的场景大纲,那么是否可以从第一个特征文件中选择一个场景来运行?

此页面是否有帮助?
0 / 5 - 0 等级