繁体   English   中英

红宝石/黄瓜的装载顺序-“已初始化常量”

[英]Load order in ruby/cucumber - 'already initialized constant'

我正在寻找一种干净的方法来避免黄瓜功能目录中的此问题:

├── config
│   └── cucumber.yml
└── features
    ├── login_screen
    │   ├── wondering.feature
    │   └── pondering.feature
    ├── step_definitions
    └── support
        ├── a_module.rb
        └── hooks.rb
        └── z_module.rb

黄瓜默认情况下会加载功能/支持中的所有内容,因此在support文件夹中保留一些模块或类来帮助我的测试可能会与加载顺序产生冲突-当hooks.rb运行时a_module.rb已加载,但z_module尚不可用。 我可以使用require_relative但这会导致warning: already initialized constant a_module中warning: already initialized constant

是否有一种整洁的方法,不依赖于基于其拼写的文件选择性地调用require_relative 我可以将它们放在单独的lib文件夹中,在它们前面加上_或...

我倾向于根据加载顺序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'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM