如何在Django中强制跳过单元测试?
我发现了@skipif和@skipunless,但是我只是想跳过一下测试以进行调试,同时弄清了一些事情。
Answers:
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():
...
如果您只是不想运行某些测试文件,则最好的方法可能是使用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
但该命令不存在。