2013-02-27 49 views
4

我有一堆單元測試文件,所有這些文件都由django.test.TestCase類組成。Django測試數據庫不自動刷新

寫了一個小小的shell腳本來取消註釋/評論我的__init__.py文件中的測試文件導入,所以我可以從某些測試文件運行測試,基於我給它的命令行參數。我也能夠一次運行所有測試文件的所有測試(用於迴歸測試目的)。

我有了一些JSON固定裝置和某一個模型/表中它具有3條記錄第一測試檢查(由JSON夾具定義)這一個測試文件。

所以這裏的問題是:當我運行它自己的這個測試文件的測試通過出色,但是當我運行與所有其他測試的測試中,我提到特定的測試情況下,失敗。

當我運行所有測試,數據庫說,有6個表中的記錄/型號,但應該只有3(從夾具),當測試文件本身運行等。

我也嘗試運行該測試文件與其他幾個測試文件(不是全部),並將其傳遞。所以唯一不是的,就是所有的測試文件都運行的時候。

對我來說,這似乎是Django或PostgreSQL(我使用的數據庫)的錯誤,因爲不是Django TestCases應該在每個測試方法之間自動刷新/重置數據庫,更別提測試類了?

+0

這不可能是PostgreSQL中的錯誤,所以我會建議使用Django開發團隊跟進。從你的描述來看,這聽起來像是你期望發生的回滾沒有完成。 – 2013-05-01 15:08:30

回答

0

這可能是由於在如何清理工作在Django的TestCase和TransactionTestCase之間做了區別。在TestCases之後需要運行Django 1.5 TransactionTestCases之前(以及Djangos testunner爲你做這件事)。這應該是fixed in 1.5雖然,所以嘗試運行測試再次出現......