私は単体テストがたくさんあるDjangoアプリケーションに取り組んでいます。
アンマネージドモデル(管理= False)のテスト機能の一部。それらをテストするために、setUpClassにいくつかのsqlファイルの実行があります。初期データのdjangoユニットテストを提供する
Django 1.11.2でアップグレードした後、SQLファイルの実行時に警告が表示されます。
Warning: Unknown table '<table name>' return self.cursor.execute(query, args)
私はこの警告の理由を検索し、それがテーブルを作成したり、それをドロップする前に存在しているかどうかを確認するSQLファイルにリンクされているようだ:
警告は次のようです。
この警告を削除し、これを行うには、tearDownClassのテーブルを削除して、SQLファイルのIF EXISTS
ステートメントを削除すると考えました。
このアプローチではユニットテストが遅くなり、ベストプラクティスかどうかわかりません。
さらに、Djangoのマニュアルでは、fixturesを使用して初期データを提供しています。ユニットテストでのフィクスチャの使い方に関するドキュメントは(私の見地から)あまり明確ではないので、この問題を解決するためのベストプラクティス/アプローチがどのようになっているかを理解するためにこの質問をしています。私は完全にあなたの懸念を理解していない事前