3

我正在自动化使用 Elixir 用 Gherkin 编写的规范中定义的验收测试。一种方法是使用名为Cabbage的 ExUnit 插件。

现在 ExUnit 似乎提供了一个setup在任何单个测试之前运行的setup_all钩子和一个在整个套件之前运行的钩子。

现在,当我尝试通过重置setup挂钩中的持久性来隔离我的 Gherkin 场景时,似乎在执行每个步骤定义之前都会清除持久性。但是 Gherkin 中的一个场景几乎总是需要多个步骤来构建测试环境并以固定的顺序执行测试。

另一方面,另一个选项setup_all钩子会为每个特性文件重置一次持久性。但是 Gherkin 中的功能文件几乎总是包含多个场景,理想情况下它们应该完全相互隔离。

因此,上述钩子似乎允许我隔离单个步骤(我认为这毫无意义)和整个功能文件(远非最佳)。

有什么方法可以隔离每个场景吗?

4

1 回答 1

1

首先,有替代品,例如:whitebread

如果您的所有功能都需要一些类似的初始步骤,那么可能需要研究背景步骤。可悲的是,这些更改混合在对新合并到的库的更大重写中。还有另一个PR也与其他功能混合在一起,目前正在等待配套库更新。所以目前这不起作用。

尚未测试库如何使用设置挂钩,但 setup_all 应该可以正常工作。

有标签之类的东西。我认为尚未与新版本一起发布,但已在 master 中。他们使用回调标签。您可以仔细查看测试中的示例

目前有一点混乱。我没有太多时间花在这个图书馆上。

希望这对您有所帮助:)

于 2019-02-27T17:29:00.057 回答