問題タブ [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で単体テストをスキップするにはどうすればよいですか?
Djangoで単体テストを強制的にスキップするにはどうすればよいですか?
@skipif と @skipunless だけが見つかりましたが、デバッグ目的で今すぐテストをスキップして、いくつかのことを整理したいと思います。
django - Django: 単体テスト ListView と assertContains に関する問題
公式の Django 1.5 チュートリアルの単体テストを採用しています。ListView で空のコンテキストをテストしようとしています。次のエラーが表示されます。
そして、これは私のListViewコードです:
ここに私の TestCase メソッドがあります:
しかし、公式のチュートリアルでは、投票に同等の行がありました ( https://docs.djangoproject.com/en/dev/intro/tutorial05/#testing-our-new-view ):
チュートリアルが提供するビューメソッドからの応答に「No polls are available」が保存されている場所がわかりませんが、何らかの理由で合格しますが、私のものはそうではありません。
私のテストメソッドには何が欠けているので、それも合格しますか?
python - LiveServerTestCase は Django アプリケーションを URL にマップしません
バックグラウンド:
Django アプリの最初の Selenium 駆動統合テストをセットアップしようとしています。次の簡単なコードを開発しました。
ここで、次のコマンドを使用してこのテストを実行すると:
次の出力が得られます。
そして、通常のセットアップを実行すると、次のようになります。
ページ要求時に次の出力が得られます。
ご覧のとおり、テストの実行時に Web ページが認識されません (& 開発環境の要求で正しく行われるように、「GET」要求は実際には行われません)。実際、「GET」の失敗は、アプリケーションが LiveServerTestCase によって正しくセットアップされていないという問題の単なる指標であると考えています。
質問:
LiveServerTestCase がページの URL を認識しないのはなぜですか? また、この問題を解決するにはどうすればよいですか?
django - フォーム エラーがないにもかかわらず、単体テストで POST 要求が期待どおりにリダイレクトされないのはなぜですか?
単体テストで投稿しているフォームを含む Django ビューがあります。テストの一般的な構造は次のとおりです。
ただし、リダイレクトが期待どおりに機能しない理由がわかりません。import pdb; pdb.set_trace()
フォーム エラー ( ) があるかどうかを確認するためにドロップしようとしましたresponse.context['form'].errors
が、返されるのは空の dict だけです。ブラウザでフォームを送信すると適切にリダイレクトされるため、単体テストが失敗する理由がわかりません。また、フォーム エラー dict にエラーが表示されないため、適切にデバッグする方法もわかりません。
django - assertContains に渡すと HttpResponse オブジェクトが文字列になる
Django テンプレート テストで奇妙な問題が発生しました。テストでビューを実行すると、ビューは HttpResponse オブジェクトを返します。しかし、その応答オブジェクトを Django TestCase の assertContains メソッドに渡すと、応答オブジェクトは文字列になります。この文字列には、応答オブジェクトのような「status_code」属性がないため、テストは失敗します。これが私のコードです:
template_tests.py
このコードをデバッガーで実行し、assertContains を呼び出す前に「type(response)」を実行すると、「response」が HttpResponse オブジェクトであることがわかります。ただし、assertContains が呼び出されると、次のエラーが発生します。
assertContains メソッドの .../django/test/testcases.py:638 に追加のブレークポイントを設定しました。
この時点で、もう一度「type(response)」を実行すると、文字列オブジェクトになり、status_code 属性がないことがわかります。誰が何が起こっているのか説明できますか? この同じテスト パターンを他の 12 個のテンプレート テストで使用して成功しましたが、すべてのテストで機能しました。このテストにファイルのアップロードが含まれているという事実と何か関係があるのでしょうか?
ありがとう。
python - Django クエリ セットの単体テスト
Django/unittest で単体テストを学ぼうとしています。
これらは私のモデルの単純なバージョンです:
そして、これは私が思いついたテストコードです:
との文字列表現が同一AssertionError
であるにもかかわらず、on のため、テスト結果は失敗します。device.get_ips()
[ip1, ip2, ip3]
使用しようとすると、リストではなく QuerySet であるself.assertListEqual
ため、エラーが発生します。device.get_ips()
試してみると " "self.assertQuerySetEqual
というエラーが表示されますが、 extendsの TestCase.DeviceTest object has no attribute assertQuerySetEqual
DeviceTest
django.test
このようなテストをどのように行う必要がありますか?
また、「実際の」プロジェクトでは、このような単純なテストを行うのは理にかなっていますか?
python - 長いメソッド名の PEP8
長いメソッド名のPEP8の正しい方法は何ですか? 自己記述型メソッドを使用した単体テストがあります。
しかし残念なことに、この (長すぎる?) メソッドは 80 文字行の制限に達します。
名前を変更してコードに説明を追加する必要がありますか、それとも他の方法がありますか?
python - django テストの実行について少し混乱しています
だから私はここのサイトの指示に従いました:
https://docs.djangoproject.com/en/1.5/topics/testing/overview/
しかし、私を混乱させるのは、実行時のテストの範囲を説明する部分です。それは言います:
デフォルトでは、INSTALLED_APPS 内のすべてのアプリケーションですべてのテストが実行されます。特定のアプリケーションのテストのみを実行する場合は、アプリケーション名をコマンド ラインに追加します。
たとえば、INSTALLED_APPS に「myproject.polls」と「myproject.animals」が含まれている場合、次のコマンドで myproject.animals 単体テストを実行できます。
私を混乱させるのは、サイトのディレクトリ構造が次のようにレイアウトされていることです
だから私は本当に小さなアプリを持っていません。私は基本的に、サイトである1つの大きなアプリを持っています. 私の INSTALLED_APPS 変数には多くのアプリがありますが、mysite でテストを実行したいだけです。どうすればそれを行うことができますか?
または、私はしなければなりません:
サイト全体を独自のアプリに移動し、このようなディレクトリ構造をレイアウトして、そのアプリを INSTALLED_APPS に追加します
また、一般的に、それは私の django プロジェクトにとってより良い構造でしょうか?