How do you skip a unit test in Django?

在 Django 中如何强制跳过单元测试?

我找到的只有@skipif 和@skipunless,但出于调试的目的,我现在只想跳过一个测试,同时理顺一些事情。

43781 次浏览

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 docs

跳过测试的医生

如果您只是希望不运行某些测试文件,那么最好的方法可能是使用 fab或其他工具并运行特定的测试。

用于单元测试的 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