私はdjango settings.py
ファイルを1つの構成済みデータベースに持ち、2つのmysqlデータベースにつなぎ、dbname
とtest_dbname
という名前にします。 テストデータベースを使用してdjango.test.Clientに応答する方法
test_dbname
からオブジェクトを選択します
MyClass.objects.all()
ようpython manage.py test ...
、オブジェクトの選択のようなコマンドを実行している場合。一方
、私は
client = django.test.Client()
response = client.post(...)
その後、
テストコード(またはスレッド、私はよく分からない)を使用してHTMLページの生成をテストする場合client
対象とpost
引数の用途を作成しますtest_dbname
の場合、post
を要求して応答を生成するスレッドはdbname
(test_ prependedはありません)を使用します。
これは、不便である。そのような要求はHow to test a Django form with a ModelChoiceField using test client and post method
- テスト中のデータベースは2つありますが、そのうちの1つの内容だけがテストコードから制御可能なように見えます。テストが予測できなくなります。
サーバースレッドは、テストケーススレッドから制御できるデータベースを使用できますか?
テストクライアントのような別のスレッドを使用していません。私の場合では、これは
により、テストケースを実行すなわち前に、ファイルのインポート時にsomequery
を走ったのようなフォーム定義を置き換えることを意味しWSGIサーバーが実現します。 WSGIリクエストに応答するDjango関連の関数を直接呼び出します。クエリが間違ったデータベースを参照している場合は、テストデータベースが設定される前にクエリを実行する可能性が最も高いです。 – knbk
ああ、ありがとう、それはそれを解決したようだ、以下の状況を説明します。 – Olivier