【发布时间】:2016-09-02 09:59:16
【问题描述】:
在 Cucumber 中,是否可以为整个功能运行后台步骤?所以它不会在每个场景中都重复?
我正在搜索引擎上运行一些测试,我需要使用测试数据预先设置搜索引擎。由于生成和处理这些数据的时间可能很长(我正在使用 Elasticsearch,并且需要构建索引),所以我宁愿只做一次这个背景,但只针对同一功能下的所有测试。
Cucumber 可以吗?
请注意,我使用的是 MongoDB,所以我不使用事务而是截断,而且我相信每次测试后我都会自动运行 DatabaseCleaner,我想我必须禁用它(也许用@提及?)
编辑:
是的,我正在使用 Cucumber 和 Rails 的 Ruby 步骤
EDIT2:具体示例
我需要测试我的搜索引擎是否总是返回相关结果(例如,在搜索“买家”时,它应该返回带有“买家”、“购买”、“购买”等的结果(必须做使用 ES 配置),并且其他上下文信息会正确更新(例如在侧边栏中
我的类别/过滤器带有括号中的命中数,我必须确保在用户使用过滤器时刷新这些数字)
为此,我在搜索引擎中预先设置了十几个结果,并运行所有基于相同输入的测试。我经常有“示例”子句,它们只是做一些稍微不同的事情,但基于相同的播种
【问题讨论】:
-
在使用数据的场景运行后,是否还需要移除数据?
-
我已经解决了关于禁用 DatabaseCleaner 的部分,但我不知道您如何配置它以与 Cucumber 和 Mongoid 一起使用。你是使用 cucumber-rails(它设置 DatabaseCleaner)还是你自己运行 DatabaseCleaner,也许在一个 Around 钩子中?
标签: ruby-on-rails mongodb cucumber ruby-on-rails-5 database-cleaner