我有一个场景,它的步骤定义驻留在多个文件中。例如,登录步骤位于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/