Django 1.7では、データベースの移行が導入されました。
Django 1.7でユニットテストを実行すると、移行が強制的に行われ、時間がかかります。だから私はdjangoの移行をスキップして、最終的な状態でデータベースを作成したいと思います。
コードのその部分はテストされないので、移行を無視することは悪い習慣になることを知っています。しかし、そうではありません。CIテストサーバー(ジェンキンス)で完全な移行を実行しています。速度が重要なローカルテストでは、移行をスキップしたいだけです。
いくつかのコンテキスト:
Django 1.6まで、Southを使用するときは、SOUTH_TESTS_MIGRATE設定を使用していました。
デフォルトでは、Southのsyncdbコマンドは、非インタラクティブモードで実行されている場合、移行を適用します。これには、テストの実行時も含まれます。テストを実行するたびにすべての移行が実行されます。
テストランナーで移行の代わりにsyncdbを使用する場合-たとえば、移行の適用に時間がかかりすぎる場合は、settings.pyでSOUTH_TESTS_MIGRATE = Falseを設定するだけです。
ただし、syncdbはもう存在していません。現在は移行しています。
Django 1.8以降は--keepdbパラメータを使用します。
--keepdbオプションを使用すると、テスト実行間でテストデータベースを保持できます。これには、作成アクションと破棄アクションの両方をスキップするという利点があり、特に大規模なテストスイートでのテストの実行時間を大幅に短縮します。テストデータベースが存在しない場合、最初の実行時に作成され、その後の実行ごとに保存されます。適用されていない移行は、テストスイートを実行する前にテストデータベースにも適用されます。
したがって、この質問はDjango 1.7に限定されています。
django-test-without-migrations
パッケージには、あなたが受け入れ答えを変更したい場合があります、私にとって本当に便利となっているstackoverflow.com/a/28993456/200224