[英]Test suite problems in rails 3.1rc5
我最近將我正在開發的應用程序升級到 rails 3.1rc5 ..
在大多數情況下,它很棒,但我的一些測試遇到了非常奇怪的問題..
例如,在我的 cucumber 規格之一中,我使用工廠女孩創建了一堆假記錄。通常這工作正常,但似乎由於某種原因它沒有創建記錄。
所以我注釋掉了我所有的工廠東西並用這個替換它:
c = Contact.new(:first_name => "SOMEONE", :last_name => "COOL", :dob => 10.years.ago, :sex => "male")
if c.save
puts "MYCOUNT: #{Contact.count}"
else
puts "EXPLOSIONS!!!"
end
作為 cucumber 套件的一部分運行它會輸出:
MYCOUNT: 0
所以聯系人記錄顯然被保存(並通過驗證)但是當我打電話給計數時它仍然沒有出現?
為什么??
我在用:
導軌 3.1rc5
rspec-rails
黃瓜欄桿
和
factory_girl_rails
我還應該注意我正在使用 sunspot (solr API) https://github.com/outoftime/sunspot索引我的模型
聽起來您在測試中觸發了事務回滾:
1) 交易開啟
2) Contact.save 成功(現在有合法的聯系人實例和數據庫記錄)
3) 出現問題,引發 ActiveRecord::Rollback
4) 事務回滾,留下合法的聯系人實例但沒有數據庫記錄,計數 = 0
我不知道什么會導致這與您的 Rails 升級有關,但也許這會幫助您找到失敗的原因。
編輯:
如果您跟蹤您的 log/test.log 文件,您應該會看到在這種情況下發生回滾。 您可以查看之前的 DB 活動,以了解在它之前最后一次成功的 db 操作是什么。
不是一門精確的科學,但可以幫助您確定是否是這種情況,並大致了解它的橫向發展。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.