2012-09-05 41 views
1

我想在運行我的測試用例之前將測試數據插入到數據庫中。django測試失敗將燈具的數據插入到mysql中

從django的詳細輸出,它表示它已經從燈具加載了很多對象。但是在測試數據庫中表仍然是空的。我在我的測試代碼中設置斷點,然後檢查測試數據庫的表。我甚至調試了django代碼,它確實執行了insert sql並返回了受影響的行。但我仍然無法找到測試數據庫中的數據!

數據庫服務器是mysql。

解決它的任何想法?

django的測試的詳細輸出,

... 
Loading 'goods_756399566_3my10' fixtures... 
... 
Trying '/Users/kane/git/blizzard_recommend/blizzard_recommend/src/web/fixtures' for goods_756399566_3my10.xml.zip fixture 'goods_756399566_3my10'... 
No xml fixture 'goods_756399566_3my10' in '/Users/kane/git/blizzard_recommend/blizzard_recommend/src/web/fixtures'. 
Trying '/Users/kane/git/blizzard_recommend/blizzard_recommend/src/web/fixtures' for goods_756399566_3my10.xml.bz2 fixture 'goods_756399566_3my10'... 
No xml fixture 'goods_756399566_3my10' in '/Users/kane/git/blizzard_recommend/blizzard_recommend/src/web/fixtures'. 
Trying '/Users/kane/git/blizzard_recommend/blizzard_recommend/src/web/fixtures' for goods_756399566_3my10.json fixture 'goods_756399566_3my10'... 
Installing json fixture 'goods_756399566_3my10' from '/Users/kane/git/blizzard_recommend/blizzard_recommend/src/web/fixtures'. 
Trying '/Users/kane/git/blizzard_recommend/blizzard_recommend/src/web/fixtures' for goods_756399566_3my10.json.gz fixture 'goods_756399566_3my10'... 
No json fixture 'goods_756399566_3my10' in '/Users/kane/git/blizzard_recommend/blizzard_recommend/src/web/fixtures'. 
Trying '/Users/kane/git/blizzard_recommend/blizzard_recommend/src/web/fixtures' for goods_756399566_3my10.json.zip fixture 'goods_756399566_3my10'... 
... 
Installed 117 object(s) from 2 fixture(s) 

更新

我試圖轉儲數據相同initial_data.json,在該夾具中的數據可以被插入到測試數據庫。我不知道爲什麼django在運行測試用例之前未能插入燈具,但這是一個解決方法,讓我的工作繼續下去。

解決方法

我不知道它是由我的環境造成的。無論如何,我在做測試時將db更改爲SQLLite,將夾具的數據導入到內存數據庫中沒有任何問題。在沒有安裝mysql的情況下運行單元測試也是有意義的。

+0

好像是說文件'goods_756399566 ....'不在給定的文件夾中找到。檢查路徑? –

+0

@ will-hart,下面的輸出表示找到並安裝了它。 '嘗試 '/用戶/凱恩/混帳/ blizzard_recommend/blizzard_recommend/src目錄/網絡/夾具' 的goods_756399566_3my10.json夾具 'goods_756399566_3my10' ...... 安裝JSON夾具從「/用戶 'goods_756399566_3my10'/凱恩/混帳/ blizzard_recommend/blizzard_recommend/src/web/fixtures'。' – Kane

+0

夠公平的,我只是看着這行:'/ Users/kane/git/blizzard_recommend/blizzard_recommend/src/web/fixtures'中沒有xml fixture'goods_756399566_3my10'。 ' –

回答

0

這是遲到了,但是,我在研究自己的類似問題時發現了這個問題。答案是,每個Django測試都包含在一個事務中,所以如果你跳到其他程序來檢查數據庫,那就是爲什麼你看不到它。

這個問題指向相關文件:Django Rest Framework testing save POST request data

(可悲的是,這不是我自己的問題的原因。)