복붙노트

[PYTHON] 장고 테스트를 실행할 때 stdout을 어떻게 볼 수 있습니까?

PYTHON

장고 테스트를 실행할 때 stdout을 어떻게 볼 수 있습니까?

./manage.py 테스트를 사용하여 테스트를 실행하면 인쇄물을 통해 표준 출력으로 보내는 내용은 표시되지 않습니다. 테스트가 실패하면 실패한 테스트 당 "stdout"블록이 표시되므로 장고가 트랩합니다 (테스트가 통과되면 표시되지 않음).

해결법

  1. ==============================

    1.네,이 문제는 NoseTestSuiteRunner가 원인입니다. 추가 - -s는 까다 롭지 만 최선의 해결책은 아닙니다. settings.py에 후행을 추가하십시오 :

    네,이 문제는 NoseTestSuiteRunner가 원인입니다. 추가 - -s는 까다 롭지 만 최선의 해결책은 아닙니다. settings.py에 후행을 추가하십시오 :

    NOSE_ARGS = ['--nocapture',
                 '--nologcapture',]
    

    그게 내 문제를 해결해 줬어.

  2. ==============================

    2.settings.py에서 TEST_RUNNER를 확인했습니다.이 도구는 Nose를 호출하는 프로젝트 별 러너를 사용합니다. Nose에는 stdout 캡처를 막을 수있는 -s 옵션이 있지만 실행하면 다음과 같습니다.

    settings.py에서 TEST_RUNNER를 확인했습니다.이 도구는 Nose를 호출하는 프로젝트 별 러너를 사용합니다. Nose에는 stdout 캡처를 막을 수있는 -s 옵션이 있지만 실행하면 다음과 같습니다.

    ./manage.py 테스트 -s

    manage.py는 먼저 그것을 캡쳐하고 "그런 옵션 없음"오류를 던집니다. manage.py에 대한 도움말에는이 내용이 언급되어 있지 않지만 다음을 실행하면 발견되었습니다.

    ./manage.py test - -s

    그것은 -s를 무시하고 커스텀 러너 측에서 그것을 캡쳐해서 문제없이 코에 넘길 수있게 해줍니다.

  3. ==============================

    3.아마도 Nose와 같은 중간 테스트 러너를 가로 채고 stdout을 가로 채고 저장할 것입니다. Django 테스트를 직접 실행하거나 stderr에 직접 쓰십시오.

    아마도 Nose와 같은 중간 테스트 러너를 가로 채고 stdout을 가로 채고 저장할 것입니다. Django 테스트를 직접 실행하거나 stderr에 직접 쓰십시오.

  4. ==============================

    4.모든 관련 패키지 (Django == 1.11.2, django-nose == 1.4.5 및 nose == 1.3.7)의 최신 버전을 사용하면 테스트를 실행할 때 --nocapture 플래그를 추가하는 것으로 충분합니다. 따라서 간단한

    모든 관련 패키지 (Django == 1.11.2, django-nose == 1.4.5 및 nose == 1.3.7)의 최신 버전을 사용하면 테스트를 실행할 때 --nocapture 플래그를 추가하는 것으로 충분합니다. 따라서 간단한

    ./manage.py test --nocapture
    

    충분할 것이다.

    물론 당신은

    TEST_RUNNER = "django_nose.NoseTestSuiteRunner"
    

    귀하의 settings.py에

  5. from https://stackoverflow.com/questions/1236285/how-do-i-see-stdout-when-running-django-tests by cc-by-sa and MIT license