任何人都知道在運行cucumber features
時會導致此錯誤的原因是什麼?cucumber/rails error未初始化的常量DatabaseCleaner(NameError)
uninitialized constant DatabaseCleaner (NameError)
任何人都知道在運行cucumber features
時會導致此錯誤的原因是什麼?cucumber/rails error未初始化的常量DatabaseCleaner(NameError)
uninitialized constant DatabaseCleaner (NameError)
DatabaseCleaner是一個清理數據庫的庫。黃瓜將在運行功能之間使用它,以確保您的數據庫處於可測試狀態(即空)。
的想法是,你建立你的Given
條款的正確數據爲每個測試
此錯誤只是意味着DatabaseCleaner沒有恰當地要求。
不同版本的Rails/Cucumber有不同的配置方法,並提供不同的功能,所以很難在不知道您的設置的情況下爲您提供正確的解決方案。
的一些提示,但:
看那cucumber-rails寶石。它給你很多好東西,比如生成器和耙子任務,所以你可以運行rake cucumber
而不是直接使用黃瓜。通常情況下,生成器會生成一個需要database_cleaner
的配置文件。
否則,將database_cleaner
添加到您的依賴關係列表中,並將require 'database_cleaner'
放在測試套件代碼的某處。
當我運行'rails g cucumber:install'時,我在我的gem文件中有了webrat,我後來改用了capybara ...也許這跟它有關係? – DanS 2011-03-29 21:15:38
這個答案過長,根本不回答問題。 「依賴關係列表」?新手如何知道這是什麼?明確。 – 2011-03-29 21:20:19
沒有你使用的無頭瀏覽器應該無關緊要......如果你已經完成了'cucumber:install',嘗試用rake任務進行測試,而不是直接使用'cucumber',它可能會設置額外的依賴關係:https://github.com/aslakhellesoy/cucumber/wiki/Using-Rake – brad 2011-03-29 21:20:38
此行添加到您的Gemfile:
gem 'database_cleaner'
這是因爲cucumber-rails
不會自動取決於database_cleaner
因爲你可能沒有一個數據庫中建立一個Rails應用程序,所以你必須明確地需要它。
我還將'require'database_cleaner''添加到''spec_helper。rb''來處理這個異常。 – 2013-06-25 19:36:00
我剛剛經歷過這個問題。我降級我的黃瓜寶石1.0.6版本,我得到這個消息:
uninitialized constant Cucumber::Rails::Database (NameError)
當我用黃瓜1.0.6(不是最新版本)和database_cleaner v 1.7.0。對於固定的錯誤,我只是運行此命令(on Rails的3.1.3):
rails g cucumber:install
它會提示您更換文件features/support/env.rb
。只需回答Y
,您就可以再次運行rake cucumber:ok
。
您是否安裝了database_cleaner gem(並且在使用rails3的情況下在您的gemfile中?) – 2011-03-29 21:07:57
不,我不知道。我從來沒有必要在我的gemfile中指定它... – DanS 2011-03-29 21:09:21
添加它確實解決了這個問題 - 儘管知道是什麼導致它會很有趣。默認的格式現在也是'漂亮',這是我以前從未有過的。 – DanS 2011-03-29 21:13:15