맞춤형 장-아드먼 명령을 테스트하는 방법
-
18-09-2019 - |
문제
내가 만들었다 맞춤형 장-아드먼 명령
하지만 테스트하는 방법을 모르겠습니다. 표준 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 명령이 성공했는지 테스트 할 수 있습니다.
제휴하지 않습니다 StackOverflow