テスト ケースを実行する前に、テスト データをデータベースに挿入したいと考えています。
django の詳細な出力から、すでにフィクスチャから多くのオブジェクトがロードされていることがわかりました。ただし、テーブルはまだテスト データベースで空です。テスト コードにブレークポイントを設定し、テスト データベースのテーブルを確認します。私はdjangoコードをデバッグし、実際にinsert sqlを実行し、影響を受けた行を返しました。しかし、まだテストデータベースでデータが見つかりません!
データベース サーバーは mysql です。
それを解決するためのアイデアはありますか?
django test の冗長出力、
...
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 をインストールせずに単体テストを実行することも理にかなっています。