如何在RSpec 2中自动加载spec_helper.rb
在Ruby中开发gem的时候,我几乎总是需要一个可以configurationRSpec的文件来满足我的需要,也许在这之前,需要一些辅助模块,这些模块应该在我所有的示例中都可用。
在Rails应用程序中,使用了一个名为spec/spec_helper.rb
的文件。 有一件令我恼火的事情是在典型的Rails环境中,你必须在每个包含它的例子的文件中都要求这个spec_helper.rb文件被加载。 在过去,我遇到了很多与更改示例文件中的加载path和相对需求path有关的问题。
现在对于我的gem,我希望有一种方法来说只要说RSpec在加载任何示例文件之前需要spec_helper.rb文件。 独立于事实,如果我打电话rspec可执行文件,或我可以定义在我的Rakefile rake spec任务。
我知道我可以告诉RSpec只有我的spec_helper.rb的位置是这个spec_helper.rb需要手动的所有示例文件,但我也想避免额外的维护方法。
有没有更好的方法来完成这个?
在RSpec 2中, /spec
文件夹总是自动在您的加载path上。 这意味着你所需要的是:
require 'spec_helper'
在您的规格文件的顶部。 这将始终加载/spec/spec_helper.rb
,并且是您能够逃脱的最低限度。
这意味着你不需要一个可怕的方法,如:
require File.join(File.dirname(File.dirname(__FILE__)), 'spec_helper.rb')
(需要针对不同的嵌套级别进行更新)。
你也可以在你的.rspec
文件中添加以下选项:– --require spec_helper
,它将在每个spec文件中需要这个文件,而不需要顶部的手动require语句。
当您执行rspec --init
时,– --require spec_helper
行会自动添加到RSpec 3.0的.rspec文件中。