cucumber - 隔离 Cabbage 中的场景

标签 cucumber elixir gherkin ex-unit

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

现在,ExUnit 似乎提供了一个在任何单个测试之前运行的 setup Hook ,以及在整个套件之前运行的 setup_all Hook 。

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

另一方面,另一个选项 setup_all Hook 会为每个功能文件重置一次持久性。但 Gherkin 中的一个功能文件几乎总是包含多个场景,理想情况下这些场景应该彼此完全隔离。

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

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

最佳答案

首先,还有替代方案,例如:whitebread .

如果您的所有功能都需要一些类似的初始步骤,也许background steps是一些值得研究的事情。遗憾的是,这些更改混合在对库的更大重写中,新版本被合并到其中。还有一个PR它也与其他功能混合在一起,目前正在等待 companion library update 。所以目前这不起作用。

尚未测试该库在安装 Hook 方面的行为方式,但 setup_all 应该可以正常工作。

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

目前有一点困惑。我没有那么多时间花在这个图书馆上。

希望这对你有一点帮助:)

关于cucumber - 隔离 Cabbage 中的场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50252933/

相关文章:

Elixir Phoenix 处理带参数的 get 请求

cucumber - 如何在我的 cucumber BDD 步骤定义中使 "the"可选?

Java Cucumber 日期表

java - 当我将鼠标悬停在步骤上时,步骤 'I click on join now' 没有匹配的粘合代码

cucumber - 将外部数据源与 Cucumber 特征文件集成

javascript - Webdriverio cucumber 不能使用 promise

symfony - 在 Behat Mink 场景中检查单选按钮状态?

javascript - 使用 Protractor 测试非 Angular 页面无法点击链接元素

elixir - 我可以在 Ecto 中使用其中一个关联的聚合计数来查询模型吗?

elixir - 在 Elixir 中,将测试文件与其相关模块放在一起