我正在自动化使用 Elixir 用 Gherkin 编写的规范中定义的验收测试。一种方法是使用名为Cabbage的 ExUnit 插件。
现在 ExUnit 似乎提供了一个setup
在任何单个测试之前运行的setup_all
钩子和一个在整个套件之前运行的钩子。
现在,当我尝试通过重置setup
挂钩中的持久性来隔离我的 Gherkin 场景时,似乎在执行每个步骤定义之前都会清除持久性。但是 Gherkin 中的一个场景几乎总是需要多个步骤来构建测试环境并以固定的顺序执行测试。
另一方面,另一个选项setup_all
钩子会为每个特性文件重置一次持久性。但是 Gherkin 中的功能文件几乎总是包含多个场景,理想情况下它们应该完全相互隔离。
因此,上述钩子似乎允许我隔离单个步骤(我认为这毫无意义)和整个功能文件(远非最佳)。
有什么方法可以隔离每个场景吗?