Django에서 단위 테스트를 어떻게 건너 뛰나요?


95

Django에서 단위 테스트를 강제로 건너 뛰는 방법은 무엇입니까?

@skipif와 @skipunless는 내가 찾은 전부지만, 디버깅 목적으로 지금은 테스트를 건너 뛰고 몇 가지 사항을 정리하고 싶습니다.

답변:


151

Python의 unittest 모듈에는 몇 가지 데코레이터가 있습니다.

평범한 옛날이 있습니다 @skip:

from unittest import skip

@skip("Don't want to test")
def test_something():
    ...

@skip어떤 이유로 사용할 수 없다면 @skipIf작동합니다. 항상 인수와 함께 건너 뛰도록 속이십시오 True.

@skipIf(True, "I don't want to run this test yet")
def test_something():
    ...

unittest 문서

테스트 건너 뛰기에 관한 문서

단순히 특정 테스트 파일을 실행하지 않으려는 경우 가장 좋은 방법은 fab또는 다른 도구 를 사용 하고 특정 테스트를 실행하는 것입니다.


Ahh, 나는 당신이 True 논쟁으로 통역사를 속일 수 있다는 것을 몰랐습니다. 감사!
user798719

사용할 수없는 이유에 대해 자세히 설명해 주 @skip시겠습니까?
Kal

1
TestCase 클래스를 건너 뛸 수도 있습니다.
wieczorek1990

69

Django 1.10 에서는 단위 테스트 에 태그사용할 수 있습니다 . 그런 다음 --exclude-tag=tag_name플래그를 사용하여 특정 태그를 제외 할 수 있습니다 .

from django.test import tag

class SampleTestCase(TestCase):

    @tag('fast')
    def test_fast(self):
        ...

    @tag('slow')
    def test_slow(self):
        ...

    @tag('slow', 'core')
    def test_slow_but_core(self):
        ...

위의 예에서 " slow"태그 가있는 테스트를 제외 하려면 다음을 실행합니다.

$ ./manage.py test --exclude-tag=slow

에 반대되는 항목이 있습니까? --exclude-tag예를 --include-tag들어이 명령이 존재하지 않습니다.
JohnnyQ

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.