在Cabbage

时间:2018-05-09 12:04:09

标签: cucumber elixir gherkin ex-unit cabbage

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

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

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

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

所以前面提到的钩子似乎允许我隔离单个步骤(我认为没有意义)和整个特征文件(远非最佳)。

有没有办法隔离每个场景呢?

1 个答案:

答案 0 :(得分:1)

首先,还有其他选择,例如:whitebread

如果您的所有功能都需要类似的初始步骤,那么也许background steps值得研究。可悲的是,这些更改在更大范围的重写(新合并到)的库中混杂在一起。还有另一个PR,它也与其他功能混在一起,目前正在等待companion library update。所以目前这行不通。

还没有测试库如何通过安装挂钩运行,但是setup_all应该可以正常工作。

有诸如标签之类的东西。我认为尚未与新版本一起发布,但已掌握。他们使用回调标签。您可以仔细查看example in tests

目前有点混乱。我没有很多时间去这个图书馆。

希望这对您有所帮助:)