16

Djangoユニットテストの実行は遅すぎます特に、1つのテストを実行したいが、テストランナーがデータベース全体を作成し、その1つのテストのためだけにすべてを破棄したい場合。

モデルを変更していない場合、Djangoがデータベース全体を作成して破棄しようとせずに、次回のために保存しておけば、時間を大幅に節約できます。さらに良いことに、テストランナーが、テストを実行する前に、どのモデルが変更されたかを確認し、それらを置き換えることができれば素晴らしいと思います。

テストランナーを自分でサブクラス化する必要はありませんが、すぐに解決策が見つからない場合は、それを実行する必要があります。このようなものはすでに存在していますか?

4

3 に答える 3

19

manage.py testdjango1.8で、コマンド--keepdbの新しいパラメーターが追加されました

./manage.py test --keepdb
于 2015-12-25T13:13:24.590 に答える
4

テストにインメモリSQLiteデータベースを使用してみましたか?ディスクベースのデータベースを使用するよりもはるかに高速です。

于 2010-06-28T02:54:52.210 に答える
1

ジャンノーズを使用しています。env var REUSE_DB = 1を設定すると、テストの実行後にDBが破棄されず、同じDBが次の実行で再利用されます。スキーマが変更されるたびに、REUSE_DB = 0を設定し、「完全な」実行を1回実行します。その後、1にリセットすると、準備が整います。

https://github.com/django-nose/django-nose

于 2015-03-06T15:26:18.793 に答える