web-dev-qa-db-ja.com

Django 1.7-「(1_6.W001)一部のプロジェクトの単体テストが期待どおりに実行されない可能性がある」を抑制するにはどうすればよいですか?

Djangoアプリケーションには、元々Django 1.2で記述された部分があり、アプリケーションは1.7までアップグレードされています。1.7にアップグレードした後、 python manage.py checkから次の警告が表示されます。

System check identified some issues:

WARNINGS:
?: (1_6.W001) Some project unittests may not execute as expected.
    HINT: Django 1.6 introduced a new default test runner. It looks like this project was generated using Django 1.5 or earlier. You should ensure your tests are all running & behaving as expected. See https://docs.djangoproject.com/en/dev/releases/1.6/#new-test-runner for more information.

エラーメッセージに記載されているURL は、行われた変更の詳細を示しますが、この警告がトリガーされる理由や抑制方法についてのヒントは提供しません。警告メッセージはDjango 1.6を参照していますが、Django 1.7にアップグレードした後にのみ表示され始めました

Django 1.6.1で実行されていたのと同じ数のユニットテストがDjango 1.7で実行されていることを確認しました。

興味のある人のために、問題のアプリケーションは Kompassi と呼ばれるイベント管理システムであり、 Github にあります。

39

開発者がこの警告を削除することを決定したようです:

https://code.djangoproject.com/ticket/23469

9
Arklon

明示的に指定していることを明らかにする ブログ投稿 が見つかりました

TEST_RUNNER = 'Django.test.runner.DiscoverRunner'

settings.pyはこの警告の発生を停止します。

45

このエラーが発生するチェック対象のリストについては、 https://github.com/Django/django/blob/1.7/Django/core/checks/compatibility/Django_1_6_0.py#L42 を参照してください。

10
xeor

SILENCED_SYSTEM_CHECKS 設定を使用すると、個々のシステムチェック警告を消音できます。

この警告がトリガーされた理由を見つける方法についての他の質問に関して、私が見つけた唯一の場所は ソースコード を見ることでした。

9
Vinod Kurup

テストですべて問題がない場合は、次の手順の1つ(またはすべて)を実行して警告をオフにすることができます。

  1. サイトフレームワークを使用しなくなった場合は、設定からSITE_IDを削除してください。

  2. BASE_DIR変数を設定に追加します。

  3. MANAGERSリストを使用しない場合は、設定から削除してください。

  4. 設定でXFrameOptionsMiddlewareミドルウェアを削除します。 (Django 1.6+とにかく)ではデフォルトで有効になっています)

  5. カスタムTEMPLATE_LOADERSまたはADMINSが必要ない場合は、削除します(通常は必要なので、しないでください何をしているのかわからない場合)。

これらは、プロジェクトがDjango <1.6によって生成されたかどうかを検出するために、現在のヒューリスティック(Django 1.7.3)がチェックする2つのことです。

8
Ivan Anishchuk