我们正在使用Cucumber作为我们的测试工具
我们有这样的文件夹结构:
- automation
- api
- api1.feature
- api2.feature
- gui
- gui1.feature
- gui2.feature
- step_definitions
- api_steps.rb
- gui.steps.rb
- support
- hooks.rb
- cucumber.yml
- env.rb
- Gemfile
- Rakefile
我需要在我的hooks.rb文件(或一般的支持目录)中进行api测试与gui测试的不同操作。对于我的api测试,我需要通过我们的restapi授权并获得一个身份验证cookie。对于我的gui测试,我需要创建一个selenium浏览器实例。
当我通过在此文件夹结构的“自动化”级别单独发出'cucumber'以及执行单个功能文件时执行所有操作时,我需要这两个工作:
$ cucumber gui/gui1.feature -r features
所以我的问题是关于如何最好地做到这一点。
谢谢!
答案 0 :(得分:1)
黄瓜真的不关心目录,只是出于组织目的。我会尽量避免任何基于文件位置的实现。
我会用标记的场景和钩子来实现它。
Before('@gui') do
# create browser/login
end
Before('@api') do
# create restapi/auth cookie
end
Before ('~@gui','~@api') do
fail('Silly developer, all scenarios must have an @api or @gui tag!')
end
答案 1 :(得分:1)
如果您运行cucumber --help
并特别注意-r
选项,您会发现可以使用其他方法。其中之一是使用不同的包含文件运行黄瓜的单独实例。配置它的最佳方法是使用profiles.yml。
您可以轻松设置gui配置文件以包含hooks / gui.rb和api配置文件以包含hooks / api
如果你需要获得更多的分离,另一种方法是从每个子文件夹中运行黄瓜,例如: automation / api automation / gui,并在这些文件夹中创建一个支持/钩子结构。