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


80

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. どのような順序で

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

回答:


128

あなたは渡すことができます-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 =非常に詳細出力


22

ナイジェルの答えは素晴らしく、間違いなく参入障壁が最も低いです。しかし、あなたができるとより良いフィードバックを得るdjango_nose(とそうではありませんことをセットアップするのが難しいです;)。

以下はからです:Pythonを使用したBDD

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

pip install nose pinocchio django_nose

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

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

次に、通常どおりにテストを実行します。

python manage.py test

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

ここに画像の説明を入力してください

注:テスト中のコメントを使用すると、名前だけでなく、さらに優れた出力を得ることができます。

例えば:

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 testHTMLレポートが表示されます。reports/cover


こんにちは@ toast38coza。それはかなりきちんとしています。私はPythonを初めて使用するので、適切にフォーマットされたテスト出力を見ることができてうれしいです。NOSE_ARGSのドキュメントを探していましたが、-With-specなどが表示されませんでした。教えていただけますか?私は基本的に、noseが「TransactionTestCaseに似ていますtransaction.atomic()が、テストの分離を実現するために使用します......... nTestCaseが必要になる可能性があります(トランザクション動作のテストなど)」を繰り返さないようにしています。
マカリオタラ

@MacarioTala --with-spec引数はpinocchioプラグインから取得されます(pipインストールできます)。上記の「最初にいくつかの要件をインストールする」と書かれている場所を参照してください。
toast38coza

うん。私はそれをインストールしました。それでは、ピノキオに関するドキュメントを探してみましょう。ありがとう!
マカリオタラ

1
共有するために、ピノキオは少し冗長すぎるので交換しました。フォークする代わりに、gfxmonk.net / dist / 0install /rednose.xmlを見つけました。あなたも気に入るかもしれません。
マカリオタラ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.