2010-11-27 12 views
3

私のテストスイートで使用するためにのみモデルを定義します。それは生産上のテーブルを作成しないでいいですね。私はテストモードになっているかどうかを確認するためにもう一度テストすることができる変数はありますか?テスト専用のモデル

+0

ユニットテストでモデルを実際のファイル(通常はtests.py)に定義するのはどうですか? –

答えて

0

Django testing frameworkpython manage.py test)を使用してテストを実行している場合は、完全に異なるデータベースにモデルのすべてのテーブルが自動的に作成され、テストを実行する前にアプリケーションフィクスチャからそれらのテーブルが作成されます。テストが完了すると、データベースは削除されます。 (本番データベースがfoo命名されている場合でない限り、あなたspecify differently、テスト・データベースは、foo_testという名前になります。)

あなたがテストのためにのみ必要なモデルを持っている場合は、あなたがしなければならないすべてはであなたのテストモデルを配置することです実動モデルと混在する代わりに、テストコードと同じディレクトリ構造を使用します。これにより、誤って実稼働データベースに混入することがなくなります。

+0

これは有効な答えではありません。「テストコードでモデルを作成するだけです」 – sleepycal

0

最近のバージョンのDjango(1.4から1.6までのバージョンを確認できます)を使用してdjango.testを使用する場合は、すべてのテストモデル定義をtests/__init__.pyに入れることができます。このようにして、本番データベースを汚染することなく、単体テストでテストモデルを作成します。

関連する問題