向场景添加自定义(结构化)元数据

Add custom (structured) metadata to scenarios

在我们基于 Behave 的 BDD 测试中,我们看到需要向场景添加一些元数据(出于测试报告的目的)。数据采用 key/value 对的形式,带有少量键,值通常是数字。该结构将在测试 运行.

之后的 and/or 期间由我们的自定义测试报告生成器解析

在 Gherkin 中是否有规范的方法来做到这一点?我们考虑将它们添加到场景本身的文本中,例如

Scenario: Some scenario (somekey=42)
  When ...

Behave 也支持标签

@sometag(42)
Scenario: Some scenario
  When ...

但由于标签有副作用(测试选择),这看起来很乱。我们还有另一个选择,例如

@sometag(42)
Scenario: Some scenario
  Given something
   When something
   Then assert
   Then report somekey 42

但没有解决方案感觉“干净”。 Gherkin 中是否有一种规范的方式来完成我们正在尝试做的事情?

这不是将元数据与场景或功能相关联的规范方法。您拥有的最接近的东西是标签。使用标签并没有什么特别的错误。当然你可以通过标签过滤你的测试,但这并不意味着你不能为元数据创建你自己的标签格式。您可以在场景 callback/hook.

之前或之后进行额外处理

如果你在测试时不需要做任何处理运行,你可以随时使用注释,然后组成你自己的格式。如果需要,您可以编写一个脚本来解析自定义脚本中功能文件中的注释。我相信只要你始终如一就应该没问题。


Gherkin 语言参考:https://cucumber.io/docs/gherkin/reference/#keywords