2011-05-17 100 views
0

我試過在Ruby on Rails教程(http://railstutorial.org)中做第9.3.3章。Ruby on Rails教程第9.3.3章

每當我跑的測試中,它說沿着線的東西:

Failures: 

    1) Users sign in/out success should sign a user in and out 
    Failure/Error: user = Factory(:user) 
    ActiveRecord::RecordInvalid: 
     Validation failed: Email has already been taken 
    # ./spec/requests/users_spec.rb:53:in `block (4 levels) in <top (required)>' 

Finished in 5.8 seconds 
4 examples, 1 failure 

我已經試過各種修正,包括重設數據庫 - 無論是使用耙分貝:復位和耙分貝:填充。

我將不勝感激任何幫助。

在此先感謝。

+0

您可以運行rake db:reset,然後在SQL Browsing程序中打開數據庫以確認數據絕對不存在,並且生產/開發/測試數據庫之間沒有衝突? – ajclarkson 2011-05-17 10:03:02

+0

有一點可以想到,默認情況下rake數據庫任務的目標是您的開發數據庫,​​而不是測試數據庫。如果你添加一箇中斷點(gem install'ruby-debug19'讓你成爲一個半象樣的調試器),你可以從調試器中檢查測試數據庫,看看在測試執行時真正存在的是什麼。 – jaydel 2011-05-17 15:54:25

+0

如何添加中斷點?我安裝了寶石。 – lakridserne 2011-05-18 17:37:46

回答

2

您的測試數據庫在您的測試運行期間似乎並未包裹在事務中。這導致您測試數據庫在測試運行之間持續存在。在每個規範運行後使用database cleaner來清理您的測試數據庫。

+0

這並沒有奏效 - 即使我把它放到我知道的所有相關文件中,它仍然顯示相同的錯誤。 – lakridserne 2011-05-17 14:29:14

相關問題