問題タブ [django-nose]

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.

0 投票する
5 に答える
5989 参照

python - テストがどこにあるかをdjango-noseに伝えるにはどうすればよいですか?

テストディレクトリにDjangoアプリケーションのテストがあります。

__init__.pyDjangoテストランナーでは、アプリケーションのテストディレクトリのファイルにsuite()関数を配置する必要があります。この関数は、$ pythonmanage.pytestを実行したときに実行されるテストケースを返します。

django-noseをインストールしました。django-noseでテストを実行しようとすると、0個のテストが実行されます。

テストモジュールを直接指すと、テストが実行されます。

django-noseのテストランナーが私のテストを見つけられないのはなぜですか?私は何をしなければなりませんか?

0 投票する
2 に答える
2212 参照

django - Django_noseは、django_siteexample.comエントリや管理者権限などの基本的なフィクスチャをロードしません

現在の安定したdjango_nose(0.1.3)では、モデルが適切に検出およびロードされていないため、テストを実行すると次の例外が発生します。

gitバージョンのdjango_noseを使用して、モデルをテストデータベースに適切に作成することができましたが、モデルはすべて空です。Djangoのテストランナーを使用すると、django_siteテーブルやauth_permissionテーブルなどの基本データがテーブルに読み込まれます。

django_noseをインストールしてセットアップした状態でテストスイートを実行すると、次の例外が発生します。

何か案は?


更新:-v 2で実行すると、アプリケーションの同期後ハンドラー(syncdb)が実行されているようです

したがって、それらを追加しているように見えますが、どこかで削除されています。


さらなる更新:

MySQLクエリログを見ると、イベントのシーケンスは次のとおりです。

  1. テストデータベースでsyncdbを実行します
  2. すべてのテーブルを切り捨てます(なぜですか?これが私の問題です)
  3. テストを実行します

クエリログからの切り捨ての例:

テーブルが切り捨てられるのはなぜですか?テストがお互いを汚染しないようにするためですか、それを無効にする方法はありますか?


私はこれが最終的な更新であると信じています:

標準のジャンゴランナーを使用すると、同じことが起こります、

  1. テーブルが作成されます
  2. post-syncはデータを挿入します
  3. テーブルは切り捨てられます
  4. AUTO_INCREMENT=1を設定するために呼び出されたテーブルを変更します

次のステップを除いて:

  1. データが挿入されます

    INSERT INTO django_sitedomainname)VALUES('example.com'、'example.com')

なぜこれがここで起こっているのかわからないが、django_noseでは起こっていない

0 投票する
1 に答える
817 参照

django - セロリタスクのdjango-noseユニットテスト...データベースデータがありません

django-nose を使用して、セロリ タスクの単体テストを作成しています。それはかなり典型的です。テスト時にフィクスチャを介して事前入力される空のテスト データベース (REUSE_DB=0)。

私が抱えている問題は、TestCase がフィクスチャをロードしていて、テスト メソッドからオブジェクトにアクセスできるにもかかわらず、非同期セロリ タスク内で実行すると同じクエリが失敗することです。

settings.DATABASES["default"]["name"] がテストメソッドとテスト中のタスクの両方で同じであることを確認しました。また、テスト中のタスクが通常のメソッド呼び出しとして呼び出されたときに正しく動作することも検証しました。

そして、それは私がアイデアを失っているところです。

サンプルは次のとおりです。

0 投票する
1 に答える
443 参照

django - Django、ノーズ、セレン..初期状態エラー

Django 1.3.1のすべてをインストールしました:、、django-noseおよびdjango-nose-seleniumテストランナーも設定しました:

まず、コマンドを実行すると$./manage.py test、Djangoの内部テストがNoseの代わりに実行を開始するようです。

第二に、実行することによって$nosetests私はこれを取得します:

何か案が ??

0 投票する
0 に答える
816 参照

django - Django-nose --with-profile で結果が得られない (「0 関数呼び出し」)

実行速度の遅い単体テストを診断しようとしていますが、プロファイラーをdjango-noseで動作させることができません。まったく新しい Django プロジェクトのレポ ケースを思いつきました。

これにより、現在のディレクトリに新しい Django プロジェクトが作成され、virtualenv にいくつかの依存関係がインストールされ、有効な settings.py が作成され、新しい単体テストが実行されます。

出力にさまざまな関数呼び出しが表示されることを期待しています。代わりに、次のようになります。

私はnose-cprofでcProfiler を試しましたが、同様の結果が得られています。誰かがこの同じプロジェクトを機能させることができますか、またはこのテストをプロファイリングするための別のソリューションを教えてくれますか?

0 投票する
2 に答える
439 参照

django-nose - Django-nose がテスト実行中にテスト専用モデルを作成しない

Django 1.3.1 プロジェクトのテスト ランナーとして django-nose 1.0 をインストールしました。テスト専用モデルに関するpypi ページの指示に従っています。

これが私のsettings.pyテストランナー構成です:

TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'

このテストランナーを問題なく使用して、数か月間テストを実行しました。現在、抽象クラスをテストしようとしており、テスト専用モデルを使用していますが、作成した特定のテストでエラーがスローされます。

ドキュメントによると、テスト中にインポートされるファイルの 1 つにテスト クラスを含めるだけで済みます。テストを「tests」フォルダーに置き、いくつかの小さなテスト ファイルに分割しています。これが私の tests/model_tests.py です (モデルとアプリは作業上の理由で意図的に名前を変更しました):

setUp の最初の行で次のエラーが表示されます。

また、テストにブレーク ポイントを設定してデータベースを調べると、テーブル 'tests_foo' (または名前に 'foo' が含まれるテーブル) が存在しません。

テスト専用モデルが読み込まれない理由について何か考えはありますか?

0 投票する
1 に答える
983 参照

django - django-noseでテストが実行されていることを知る方法

テストの実行に使用django-noseしていますが、ビュー/モデルメソッドなどの内部からテストが実行されているかどうかを知る必要があるため、キャッシュ値の確認やプロジェクト外部リソースの呼び出しなどをスキップできます。たとえば、テストの実行時のみです。

次のようなことができるように、ある種の環境変数または類似のものを用意しておくとよいでしょう。

また

誰かがこれを達成する方法を知っていますか?

助けてくれてありがとう:)

0 投票する
4 に答える
4704 参照

django - django-nose を正しくインストールするには?

django-nose の実行に問題があります。

インストール手順に従って、次の方法でインストールしました。

  1. ランニングpip install django-nose
  2. settings.py に追加'django_nose'INSTALLED_APPSます (アプリの順序の問題が発生する可能性がある場合に備えて、最後のアプリとして at を含めます)。
  3. TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'settings.py への追加

テストを実行すると、次のmanage.py testようになります。

データベースを同期する必要があると考えました。サウスを使用しています。を使用するmanage.py syncdbと、django_nose同期されたアプリのリストにも、「同期されていない (移行を使用)」アプリのリストにも表示されません。

最後に、とにかく南と同期しようとすると、つまりmanage.py schemamigration django_nose --initial、次のようになります。

VirtualenvにSouthバージョン0.7.5がインストールされたDjango 1.4があります。

私は何を間違っていますか?何もない場合、このインストールの問題をデバッグするにはどうすればよいですか?

0 投票する
1 に答える
1867 参照

python - django-nose がテストを 2 回実行するのはなぜですか?

私は次のモデルを持っています:

そして次のテスト

および次の設定:

私が試してみるとpython manage.py test polls、テストは 2 回実行されます。出力は次のとおりです。

ただし、なしTEST_RUNNER = 'django_nose.NoseTestSuiteRunner'で試すと、テストは一度しか実行されません。出力は次のとおりです。

何が悪いのか教えてください。django-nose がテストを 2 回実行するのはなぜですか?

OT: 同じモデルに対して、django_nose は unittest よりも時間がかかります。

編集:

フォルダ構造は次のとおりです。

0 投票する
2 に答える
3845 参照

django - NoseがDjangoテストを見つけられない

現在のプロジェクトでDjango-noseを使用しようとしていますが、テストを実行するためにnoseを取得する方法がわかりません。そこで、鼻を知るために簡単なDjango1.4.1プロジェクトを開始しました。しかし、この単純なテストプロジェクトでも、実行することはできませんでした。

先に進む前に:Stackoverflowには、たとえば次のような同様の質問がたくさんあることを知っています。

テストがどこにあるかをDjango-noseに伝えるにはどうすればよいですか?

しかし、グーグルで調べた後、ブログの投稿とStackOverflowの回答を読んだ後でも、実行できませんでした。

テストプロジェクトの設定方法

  1. 仮想環境を作成します。
  2. pip install django django-nose nose
  3. でプロジェクトを作成しますdjango-admin.py startproject djangonosetest
  4. アプリを作成するmanage.py startapp testapp
  5. settings.pyを編集します。

    • ENGINEに設定django.db.backends.sqlite3
    • 追加django_nosetestappINSTALLED_APPS
    • を追加しましTEST_RUNNER = 'django_nose.NoseTestSuiteRunner'た。
  6. 走るmanage.py test

しかし、私が得たのはこの出力だけでした:

ただし、少なくともデフォルトのテストケースを実行する必要があります。

実行python manage.py test djangonosetest.testapp.tests:SimpleTestすると、テストが実行されます。しかし、私が持っているすべてのテストファイルに対してそれをしなければならなかったとしたら、それは少しやり過ぎのようです。しかし、それはテストを実行できることを証明しています。

私が実行したときmanage.py test -v 3(冗長レベルが高い)、これが表示されました:

鼻は間違いなく私のtests.pyを見つけますが、何らかの理由でそれをスキップしています。

フォルダ構造

settings.py

テストコード

テストコードは、Djangoが作成するデフォルトのTestCaseです。

では、Django-nose / noseにテストの場所をどのように伝えるのですか?

アップデート

興味深いGoogleグループの投稿とその件に関するStackoverflowの回答が見つかった場合:

どちらも、noseが実行可能ファイルをスキップするという事実に要約されます。そういうわけで私は得るtests.py is executable; skipped。問題は、ファイルが実行可能ではないことです。

ux、gx、oxでも試してみましたが、とにかく鼻が飛んでしまいました。これはバグだと感じます。ファイルはノーズにあり、実行可能ではありませんが、スキップされます。

回避策は、-exeスイッチを使用することです。実行manage.py test --exeするとテストが実行されます。他の回避策よりは優れていますが、その解決策に完全に満足しているわけではありません。