我正在寻找一种干净的方法来避免黄瓜功能目录中的这个问题:
├── config
│ └── cucumber.yml
└── features
├── login_screen
│ ├── wondering.feature
│ └── pondering.feature
├── step_definitions
└── support
├── a_module.rb
└── hooks.rb
└── z_module.rb
Cucumber默认情况下会加载feature / support中的所有内容,因此保留一些模块或类以帮助我在support文件夹中进行测试可能会产生与加载顺序的冲突 - 当hooks.rb运行时a_module.rb已加载,但是z_module不是可用。我可以使用require_relative
,但这会导致warning: already initialized constant
用于a_module中的内容。
有没有一种巧妙的解决方法,不依赖于根据拼写选择性地调用require_relative
文件?我可以把它们放在一个单独的lib文件夹中,用_
或......
答案 0 :(得分:0)
我倾向于根据加载顺序0_a_module
等命名它们,或者在开头的单个文件中按特定顺序要求所有剩余文件,例如00_load_order
。
support/
00_module_a.rb
01_module_z.rb
或
support/
00_load_order.rb
...
# load_order.rb
require 'module_a'
require 'module_b'