2011-03-06 32 views
3

我使用Rails 3,machinist 2,cucumber和rspec所有在一起,并有两个blueprints.rb文件。一个在spec目录中,另一个在features/support目录中。可以黄瓜和rspec使用相同的blueprints.rb文件

只有一个blueprints.rb文件是一个好主意吗?

如果是,那么设置它的首选方法是什么?

与此同时,我只是将我的功能/支持/ blueprints.rb文件符合spec/blueprints.rb这可能是不好的,但它适用于我。

回答

5

我有这样的功能,内部/支持

文件名machinist.rb

require 'machinist/active_record' 

Dir[ File.dirname(__FILE__) + "/../../spec/blueprints/*"].each {|file| require file } 

Before { Sham.reset } # to reset Sham's seed between scenarios so each run has same random sequences 
+0

我找到了工作,如果我只是要求“要求File.join(File.dirname(__ FILE__) “..”,“..”,“spec”,“blueprints.rb”),然后删除Sham.reset。 – map7 2011-03-07 10:48:56

1

它肯定听起来很健全 - 我们这样做是为了共享灯具和帮手(但我不使用机械师)。

你可能需要做的是在你的cucumber env和rspec helper文件中包含这样的一行。这样做是将包含blueprints.rb文件的目录放在Ruby包含文件的路径列表顶部。

$: << File.expand_path(File.join(File.dirname(__FILE__), "..","..","shared","directory")) 
#require 'blueprints' will now look in the above directory first 

的“..‘’..‘’共享”,‘目录’部分是从当前文件复制到共享目录下的文件blueprints.rb是相对路径。