(django.test.client.Clientを使用する代わりに)直接HTTPリクエストを実行する単体テストを作成します。DjangoテストサーバーからDjangoテストサーバーにアクセスする
私がDjangoアプリケーションから公開するThrift-over-HTTP APIをテストしたいからです。なぜなら、ユニットテストでThriftクライアントを使いたいからです。
問題は、テスト中にサーバーが実際に実行されていないことです。 django.test.client.Clientを使用すると、実際にHTTPリクエストを行うのではなく、単にview関数を呼び出すだけです。 (私が間違っていれば私を訂正してください)
HTTPフレームをテストフレームワークに強制的に送信させるにはどうすればいいですか?私は睡眠を必要とする)1ので(そうでない場合は、テストが前に開始されます
./manage.py testserver --addrport 7000 &
PID=$!
sleep 5
./manage.py test --no-input
kill $PID
しかし、それは厄介である(そして実際には動作しません):
は、私はこのような何かをbashスクリプトを書いてみましたDBはテストサーバーによって初期化されます)、2)テストはデータベースを再度初期化しようとします(テストサーバーが既に初期化した後)。他の解決方法はありますか?
ありがとうございます。
素敵な回答ありがとう!私のために過度のように思える。私はちょうど今のところ簡単に行くだろうと思う。これは、テストサーバに接続する通常のテスト(DjangoではないのでDBを混乱させない)を作成しておく必要があります。テストセットアップで、接続に失敗した場合は、「Djangoテストサーバーを起動してください」というような素晴らしいメッセージを表示します。 :) – ibz
@Almad:[Offtopic]私たちのスラブ語では大文字で始まっても代名詞は大丈夫です。しかし、英語では、何とかして文の連続性が損なわれ、破られます。 :) –
@TomaszZielinski {Offtopic]代名詞「I」は常に大文字になります。他の代名詞を文頭から大文字にすると、神格またはそのセットを参照しています。 –