web-dev-qa-db-ja.com

Djangoのmanage.py testコマンドで実行されたテストを確認する方法

Djangoのmanage.py testコマンドを使用してテストの実行が終了すると、合格したテストの数だけがコンソールに出力されます。

(virtualenv) G:\Project\>python manage.py test
Creating test database for alias 'default'...
True
..
----------------------------------------------------------------------
Ran 2 tests in 0.017s

OK
Destroying test database for alias 'default'...

見る方法はありますか?

  1. 実際に実行されたテスト
  2. どのモジュールから
  3. 何の順番で

ドキュメントに解決策が見つかりませんでした。

66
Mariusz Jamro

-v 2testコマンドに渡すことができます。

python manage.py test -v 2

このコマンドを実行すると、次のようなものが得られます(Django 2を使用しています。移行/データベースなどは無視してください):

Creating test database for alias 'default' ('file:memorydb_default?mode=memory&cache=shared')...
Operations to perform:
  Synchronize unmigrated apps: messages, staticfiles
  Apply all migrations: admin, auth, contenttypes, sessions
Synchronizing apps without migrations:
  Creating tables...
   Running deferred SQL...
Running migrations:
  Applying contenttypes.0001_initial... OK
  ...
  Applying sessions.0001_initial... OK
System check identified no issues (0 silenced).
test_equal_hard (polls.tests.TestHard) ... ok      <--------+
test_equal_simple (polls.tests.TestSimple) ... ok  <--------+
                                                            |
                                                            |
           That's your tests!  >----------------------------+

ところで、vは冗長性を表します(--verbosity=2も使用できます)。

python manage.py test --verbosity=2

python manage.py test --helpからの抜粋は次のとおりです。

-v {0,1,2,3}、-verbosity {0,1,2,3}

詳細レベル。 0 =最小出力、1 =通常出力、2 =詳細出力、3 =非常に詳細な出力

104
Nigel Tufnel

ナイジェルの答えは素晴らしく、間違いなくエントリーオプションに対する最も低い障壁です。ただし、canDjango_noseを使用するとさらに優れたフィードバックが得られます(thatセットアップが困難ではありません;)。

以下は: Python with BDD

最初:いくつかの要件をインストールします:

pip install nose pinocchio Django_nose

次に、以下をsettings.pyに追加します

TEST_RUNNER = 'Django_nose.NoseTestSuiteRunner'
NOSE_ARGS = ['--with-spec', '--spec-color']

その後、通常どおりにテストを実行します:

python manage.py test

出力は次のようになります。

enter image description here

注:テスト中のコメントを使用して、名前だけでなくさらに優れた出力を提供できます。

例えば。:

def test_something(self):
    """Something should happen"""
    ...

テストの実行時に「何かが起こるはずです」と出力します。

追加のポイントの場合:コードカバレッジを生成/出力することもできます:

pip install coverage

Settings.pyのNOSE_ARGSに次を追加します:'--with-coverage', '--cover-html', '--cover-package=.', '--cover-html-dir=reports/cover'

例えば。:

NOSE_ARGS = ['--with-spec', '--spec-color', 
         '--with-coverage', '--cover-html', 
         '--cover-package=.', '--cover-html-dir=reports/cover']

その後、python manage.py testを実行すると、素敵なコードカバレッジの概要と、reports/coverのすてきなhtmlレポートが表示されます。

16
toast38coza