2011-03-06 34 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是相對路徑。