8

lafagundes question about south migration debug loggingと非常に似ていますが、私は南を使用していないことを除いて、プレーンな Django 1.7 の移行を使用しています。django-noseテスト ランナーも使用しています。

を実行するmanage.py testと、キャプチャされたデバッグ ログ出力がありません。

(codesy)lcrouch:codesy lcrouch$ ./manage.py test
nosetests --verbosity=1
Creating test database for alias 'default'...
......E...............................
======================================================================
ERROR: test_return_state (auctions.tests.utils_tests.IssueStateTest)
----------------------------------------------------------------------

たとえば、個々のテスト モジュールを実行する./manage.py test auctions.tests.utils_testsと、デバッグ ログの出力django.db.backends.schema: DEBUGに、Django の移行に関連するすべての行が含まれます。

(codesy)lcrouch:codesy lcrouch$ ./manage.py test auctions.tests.utils_tests
nosetests auctions.tests.utils_tests --verbosity=1
Creating test database for alias 'default'...
E
======================================================================
ERROR: test_return_state (auctions.tests.utils_tests.IssueStateTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/lcrouch/code/codesy/codesy/auctions/tests/utils_tests.py", line 13, in test_return_state
    fake_gh_client = fudge.Fake(github_client).returns_fake().provides('get_repo').returns_fake().provides('get_issue').returns_fake().has_attr(state='open')
  File "/Users/lcrouch/python/codesy/lib/python2.7/site-packages/fudge/__init__.py", line 1133, in returns_fake
    exp = self._get_current_call()
  File "/Users/lcrouch/python/codesy/lib/python2.7/site-packages/fudge/__init__.py", line 765, in _get_current_call
    "Call to a method that expects a predefined call but no such call exists.  "
FakeDeclarationError: Call to a method that expects a predefined call but no such call exists.  Maybe you forgot expects('method') or provides('method') ?
-------------------- >> begin captured logging << --------------------
django.db.backends.schema: DEBUG: CREATE TABLE "django_migrations" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "app" varchar(255) NOT NULL, "name" varchar(255) NOT NULL, "applied" datetime NOT NULL); (params [])
django.db.backends.schema: DEBUG: CREATE TABLE "django_content_type" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "name" varchar(100) NOT NULL, "app_label" varchar(100) NOT NULL, "model" varchar(100) NOT NULL); (params [])
django.db.backends.schema: DEBUG: CREATE TABLE "django_content_type__new" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "name" varchar(100) NOT NULL, "app_label" varchar(100) NOT NULL, "model" varchar(100) NOT NULL, UNIQUE ("app_label", "model")); (params [])
...
django.db.backends.schema: DEBUG: DROP TABLE "socialaccount_socialapp"; (params [])
django.db.backends.schema: DEBUG: ALTER TABLE "socialaccount_socialapp__new" RENAME TO "socialaccount_socialapp"; (params [])

これにより、実際の障害に戻ることが非常に困難になります。

この出力を無効にするにはどうすればよいですか? ジャンゴレベルかノーズレベルか?

4

2 に答える 2

2

ロギング メッセージをすばやく削除するには、次のコマンドを実行できます。

./manage.py test --nologcapture

メッセージは、微調整のための追加オプションを備えた、nos logcapture プラグインによってキャプチャされています。ただし、django-nose には古い問題があり、コマンド ラインからそれらの多くを使用できない場合があります。マイルストーン v1.4.2に予定されていますが、それは 1 か月遅れています。.nosercまたはnose.cfgファイルを使用してそれらを回避できる場合があります-形式については、鼻のドキュメントを参照してください。

于 2015-08-25T17:20:51.577 に答える