문제

내가 만들었다 맞춤형 장-아드먼 명령

하지만 테스트하는 방법을 모르겠습니다. 표준 django 테스트

도움이 되었습니까?

해결책

커버리지 도구를 사용하는 경우 코드에서 호출하는 것이 좋습니다.

from django.core.management import call_command
from django.test import TestCase

class CommandsTestCase(TestCase):
    def test_mycommand(self):
        " Test my custom command."

        args = []
        opts = {}
        call_command('mycommand', *args, **opts)

        # Some Asserts.

다른 팁

실제 명령 스크립트를 최소값으로 만들어서 다른 곳에서 함수를 호출해야합니다. 그런 다음 기능은 단위 테스트 또는 DocTests를 정상적으로 테스트 할 수 있습니다.

github.com 예제에서 볼 수 있습니다여기를 봐

def test_command_style(self):
    out = StringIO()
    management.call_command('dance', style='Jive', stdout=out)
    self.assertEquals(out.getvalue(),
        "I don't feel like dancing Jive.")

간단한 대안 구문 분석 stdout 예를 들어 Sys.exit (1)를 사용하여 성공적으로 실행되지 않으면 오류 코드로 관리 명령을 종료하는 것입니다.

다음과 같이 테스트 할 수 있습니다.

    with self.assertRaises(SystemExit):
        call_command('mycommand')

Daniel은 실제 명령 스크립트가 가능한 최소를 수행해야하지만 Django 장치 테스트에서 직접 테스트 할 수도 있다는 데 동의합니다. os.popen4.

단위 테스트 내에서

fin, fout = os.popen4('python manage.py yourcommand')
result = fout.read()

그런 다음 결과의 내용을 분석하여 Django 명령이 성공했는지 테스트 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top