我很抱歉,如果這個問題有點主觀......我想找出測試Rails 3引擎與黃瓜& Rspec的最佳方法。爲了測試引擎,需要使用導軌3應用程序。這是我目前在做什麼:如何使用Cucumber&Rspec測試Rails 3引擎?
通過運行添加軌測試應用程序的寶石(myengine)的根:
rails new /myengine/rails_app
加入黃瓜
/myengine/rails_app/features
,你會在一個正常的Rails應用程序要求(使用
:path=>"/myengine"
)Rails的引擎寶石/myengine/rails_app/Gemfile
添加規範創業板的根目錄下:
/myengine/spec
包括在
/myengine/spec/fixtures
燈具和我以下內容添加到我的CUC env.rb:
env.rb:
Fixtures.reset_cache
fixtures_folder = File.join(Rails.root, 'spec', 'fixtures')
fixtures = Dir[File.join(fixtures_folder, '*.yml')].map {|f| File.basename(f, '.yml') }
Fixtures.create_fixtures(fixtures_folder, fixtures)
你看到任何問題,設置它喜歡這個?測試運行良好,但我有點猶豫,把功能放在測試軌道應用程序內。我原本試圖將這些功能放在gem的根目錄下,並且我在features/support
裏創建了測試軌應用程序,但由於某些原因,當我運行測試時,我的引擎不會初始化,儘管當cuc運行時我可以看到應用程序加載其他所有內容。
如果有人正在使用Rails引擎,並且正在使用cuc和rspec進行測試,那麼我會很樂意聽到您的設置。
* * UPDATE
我改變了我的設置了一下,因爲我寫了這個問題。我決定擺脫引擎根目錄下的spec目錄。現在我只需創建一個名爲「test_app」的rails應用程序,並在該應用程序中設置cuc和rspec,就像我通常在rails應用程序中執行的操作一樣。然後我像上面第3步中所做的那樣包括寶石。由於引擎是一個子應用程序,我想它最好是測試它,就像它是一個普通的rails應用程序。如果有人有不同的設置,我仍然有興趣聽到。
瑞安,謝謝你的信息。這正是我所期待的。看起來像3.1中有一些很好的改進。雖然在安裝rails edge時遇到了問題。 「錯誤:無法在任何存儲庫中找到有效的gem'pkg/rails-3.1.0.beta.gem'(> = 0)」所有其他寶石(AR,AS等)構建和安裝都很好,但它看起來不像Rakefile正在構建rails gem。也許是我的環境中的東西......我剛開始排除故障,但如果你有一分鐘,讓我知道你是否能夠從rake任務安裝邊緣而沒有錯誤。謝啦! – johnmcaliley 2011-01-22 15:15:56