rspec需要.rspec文件中的spec_helper

tim*_*mow 5 ruby rspec bundler

我注意到像bundler这样的项目require spec_helper在每个spec文件中做了一个

我还注意到rspec采用了这个选项--require,它允许你在rspec被引导时需要一个文件.您也可以将其添加到.rspec文件中,因此只要运行没有参数的rspec,就会添加它.

使用上述方法有什么缺点可以解释为什么像bundler这样的项目选择在每个spec文件中要求spec_helper吗?

Aar*_*n K 5

我不在Bundler工作,所以我不能直接谈论他们的做法.并非所有项目都会签入.rspec文件.原因是此文件(通常按当前惯例)仅具有一般输出/转轮首选项的个人配置选项.因此,如果您只需要spec_helper那里,其他人不会加载它,导致测试失败.

另一个原因是,并非所有测试都需要进行设置spec_helper.最近有一些Rubyist正在试图摆脱将太多依赖项加载到测试中.通过spec_helper在测试中需要它时,人们可以了解可能发生的事情.此外,运行不需要该设置的单个测试文件或目录将更快.

实际上,如果您的所有测试都需要,spec_helper并且您已经对项目做了明确的约定,那么没有技术理由您不能或不应该这样做.对于加入该项目的新人来说,这可能是最初的惊喜.