Як примусово пропустити одиничний тест у Django?
@skipif та @skipunless - це все, що я знайшов, але я просто хочу пропустити тест зараз для налагодження, поки я виправляю кілька речей.
Як примусово пропустити одиничний тест у Django?
@skipif та @skipunless - це все, що я знайшов, але я просто хочу пропустити тест зараз для налагодження, поки я виправляю кілька речей.
Відповіді:
Модуль unittest Python має кілька декораторів:
Є звичайне старе @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():
...
Документи щодо пропуску тестів
Якщо ви хочете просто не запускати певні тестові файли, найкращий спосіб - це скористатися fab
іншим інструментом і запустити певні тести.
@skip
?
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
але ця команда не існує.