在卷心菜中隔离场景

Isolating scenarios in Cabbage

我正在使用 Elixir 自动执行以 Gherkin 编写的规范中定义的验收测试。一种方法是使用名为 Cabbage.

的 ExUnit 插件

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

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

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

所以上述钩子似乎允许我隔离单个步骤(我认为这是毫无意义的)和整个特征文件(远非最佳)。

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

首先是备选,例如:whitebread.

如果您的所有功能都需要一些类似的初始步骤,也许 background steps are something to look into. Sadly those changes were mixed in a much larger rewrite of the library that newer got merged into. There is another PR which also is mixed in with other functionality and currently is waiting on companion library update。所以目前这不起作用。

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

有标签这样的东西。我认为尚未与新版本一起发布,但已在 master 中。他们使用回调标签。你可以仔细看看 example in tests.

目前有点乱。我没有足够的时间花在这个图书馆上。

希望对您有所帮助:)