code

Django의 manage.py 테스트 명령 중에 실행 된 테스트를 확인하는 방법

codestyles 2020. 11. 11. 20:11
반응형

Django의 manage.py 테스트 명령 중에 실행 된 테스트를 확인하는 방법


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. 어떤 순서로

문서에서 해결책을 찾지 못했습니다.


-v 2다음 test명령에 전달할 수 있습니다 .

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!  >----------------------------+

그건 그렇고, vverbosity를 의미합니다 (당신은 또한 사용할 수 있습니다 --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 = 매우 자세한 출력


Nigel's answer is great and definitely the lowest barrier to entry option. However, you can get even better feedback with django_nose (and it's not that difficult to setup ;).

The below is from: BDD with Python

First: install some requirements:

pip install nose pinocchio django_nose

Then add the following to settings.py

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

Then run your tests as per normal:

python manage.py test

Output should look something like this:

enter image description here

Note: The comments under your tests can be used to give even better output than just the name.

e.g.:

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

Will output "Something should happen" when running the test.

For extra points: You can also generate / output your code coverage:

pip install coverage

Add the following to your NOSE_ARGS in settings.py: '--with-coverage', '--cover-html', '--cover-package=.', '--cover-html-dir=reports/cover'

e.g.:

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

Then you'll get a nice code-coverage summary when you run python manage.py test as well as a neat html report in reports/cover

참고URL : https://stackoverflow.com/questions/21500354/how-to-see-which-tests-were-run-during-djangos-manage-py-test-command

반응형