簡體   English   中英

Rails 2.3.2單元測試在使用正常紅寶石運行時通過,而在瑞克測試運行時失敗:

[英]Rails 2.3.2 unit test passes when run with normal ruby, fails when run with rake test:units

在單元測試中創建記錄時,當它與rake test:units一起運行時,我得到的是“ ActiveRecord :: RecordInvalid”。 當我使用ruby手動運行單元測試時,我沒有得到這個錯誤('ruby unit / blah_test.rb')。 我將問題縮小為模型中存在的驗證。 這是一個包含驗證,實際上是針對其他模型執行查找以獲取有效值。 我認為這與未及時加載固定裝置有關,但我的test_helper.rb中確實包含“ fixtures:all”(我也嘗試過在單元測試中包含“ fixtures:all”。

有人對我如何進一步縮小范圍有任何建議嗎?

謝謝。

當然,您所看到的將與缺少的燈具相匹配。 使用rake test:units將會建立(並清除)測試數據庫架構,因此可能不會填充您所包含的模型的固定裝置。 通過直接調用,您將以上次離開數據庫的狀態使用測試數據庫,該數據庫可能確實包含所包含模型的fixutres。

在測試類中是否還有另一個對fixtures調用,這可能會導致fixtures :all無法踢入?

您可以在通過ruby運行測試之前嘗試進行rake db:test:prepare ,這意味着您正在新的測試數據庫上運行。 這將進一步突出顯示是否未為包含的模型加載固定裝置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM