我有一个场景,它的步骤定义驻留在多个文件中。例如,登录步骤位于login_steps.rb中,与搜索相关的步骤位于search_steps.rb中
cucumber为login_steps.rb中没有的任何步骤输出未定义的步骤。步骤定义仅在login_steps.rb中存在时运行是否需要将场景的所有步骤定义放在同一个文件中?
我的文件夹结构

Project folder
└─ features
   ├─ pages
   ├─ scenarios
   ├─ step_definitions
   └─ support

我使用的命令:
cucumber -r features features\scenarios\Test.feature

最佳答案

黄瓜和POM的全部要点是,您具有灵活性,不需要重新编写每个特征文件的步骤。这就是我的目录结构:

Root
 - features
   - step_definitions
     - step_definition.rb
   - support
      - env.rb
 - lib
  - BasePage.rb
 - feature.feature

基本上,对于这个目录结构,只要需要引用的特定页面(例如basepage.rb文件),步骤定义在哪里并不重要。
require File.join(File.dirname(__FILE__), '..', '..', 'lib', 'pages', 'BasePage')


And /^I do something$/ do
  @page = BasePage.new(@test_env)
  @page.verify_el(css)
end

关于ruby - 同一场景下多个文件的步骤定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21411880/

10-13 07:37