問題タブ [django-unittest]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - Django unittest フレームワークに関する拡張情報の取得
アプリケーションのテストに Django 単体テスト フレームワークを使用しています。すべてのテスト ケースを実行するたびに、正常に実行されたテスト ケースに関する非常に簡単な情報が得られます。
これは非常に少ない情報です。各テストケースについてもう少し情報が欲しかったのですが、
例えば
各テスト ケースの実行にかかった時間。
各テスト モジュールの正常な完了。などなど
実行されたテスト ケースに関するこの拡張情報を有効にできるデバッグ (またはその他のパラメーター) パラメーターはありますか?
注:- verbosity パラメータを使用してもニーズが満たされない
python - Django 1.6、マルチプロセッシングを使用した Transaction.commit_on_success が機能しない
私はDjangoが初めてで、いくつかのテストケースを書こうとしています。
私のコードでは、いくつかのトランザクションを行っています。その目的のために、django でselect_for_updateを使用してそのコードをロックしました。次に、ロックが正しく機能しているかどうかをテストしたいと思います。2つ以上のプロセスを同時に実行しているため、最初のプロセスのみが許可され、最初のプロセスが終了するまでここで待機してから、他のプロセスが続行されます。
ここで、上記のコードは別のビュー ファイルにあります。そこで、ここでは cron ジョブを使用して、このファイルを django で実行しました。プロセスを使用して、transaction_func で row_lock_method を 2 回呼び出しています。テストは正常に実行されますが、これは実際のデータベースにあるため、このジョブで行われたすべての変更をロールバックしたいので、両方の for ループの後に昇格条件を置きます。そのため、ここで例外が発生し、transaction.commit_on_successを介してロールバックします。しかし、私の問題は、ロールバックがここで機能していないことです。エラーメッセージすら来ません。
私は何か間違ったことをしていますか?返信してください。前もって感謝します。
python - Django REST API unittest で、JSON パラメータを client.get() 関数の body として送信するにはどうすればよいですか?
私は REST API を構築してDjango
おり、いくつかの場所では、多くのパラメーターを使用して HTTP GET を送信する必要があります。そのため、request.body で JSON として送信することにしました。これで、アプリは正常に動作しますが、単体テストは動作しません。self.client.get() を使用して本文で JSON パラメーターを送信する方法が見つからないようです。これは私がやっていることです:
これを使用して単体テストを実行すると、次のエラーが発生します。
POST は問題なく動作しますが、この場合は GET を使用する必要があります。それは可能ですか?Django のバージョンは 1.4.5 です。
django - django-rest-framework のテスト クライアントでバイナリ ファイルのアップロードをテストするにはどうすればよいですか?
アップロードするファイルを受け入れるビューを持つ Django アプリケーションがあります。Django REST フレームワークを使用して、APIView をサブクラス化し、post() メソッドを次のように実装しています。
今、認証が必要であり、アップロードされたファイルが実際に処理されることを確認するために、いくつかの単体テストを作成しようとしています。
しかし、REST フレームワークがリクエストをエンコードしようとすると、これは失敗します。
UTF-8 としてデコードしようとせずに、テスト クライアントにデータを送信させるにはどうすればよいですか?
python - テンプレート Sqlite データベースを使用して Django 単体テストを高速化する
新しいデータベースを生成してスキーマを最初から初期化する代わりに、単体テストを実行するときにDjangoにsqlite3 dbファイルをメモリにロードさせるにはどうすればよいですか?
Django がテストごとにロードするのに時間がかかる大きな JSON フィクスチャがいくつかあります。私が想像している回避策は、「テンプレート」sqlite3データベースを生成し、それにすべてのスキーマとフィクスチャをロードし、それを各単体テストに使用して、すべてのフィクスチャのロードをバイパスすることです。明らかに、スキーマまたはフィクスチャを変更するたびにこのテンプレートを更新する必要がありますが、各単体テストの実行に数分ではなく数秒かかることを意味する場合、それは許容できるトレードオフです。
最初のステップを完了し、テンプレート データベースを生成しました。次のようにしました。 test.running.DiscoverRunner.teardown_databases を実行して何もしないので、db ファイルを取得してデータベース テンプレートとして保存できます
しかし、今、Django にこのファイルを使用させる方法に行き詰まっています。ファイルを TEST_NAME パラメーターとして保持すると、Django は単にそれを削除して再生成しますが、ファイルシステムへの書き込みも続行するため、インメモリ Sqlite3 データベースよりもほぼ 10 倍遅くなります。
python - django-crispy-form: ヘルパー オブジェクトの TypeError が原因で単体テストが失敗する
この本の章に多少基づいて、django-crispy-form で作成されたフォームを単体テストしたいのですが、次のエラーが発生します。
TypeError: {% クリスピー %} タグに提供されるヘルパー オブジェクトは、chrispy.helper.FormHelper オブジェクトでなければなりません。
フォーム ( myapp/forms.py
):
ビュー ( myapp/views.py
):
テスト:
どうにかしてヘルパー オブジェクトもモックする必要がありますか? そして、それはどのように行われますか?どうもありがとうございました!
django - Django 単体テスト
2 つのサーバーがあり、1 つは API として機能し、もう 1 つは API (webui) からデータを取得するために使用されます。webui でビューの単体テストを実行すると、api でオブジェクトが作成されます。テスト後に api でオブジェクトを削除する方法この問題に対処する方法を提案できますか?
python - Django 1.6.1 フィクスチャが Unittest 用にロードされない
Django は、次のテスト用のフィクスチャをロードしていません。
これにより、次のビューが表示されますが、そのビューから device_list を取得できません
私のtest_device.jsonファイルは次のとおりです
ファイル構造は
私が間違っていることは何ですか?提案をしてください..