在 Django 中如何强制跳过单元测试?
我找到的只有@skipif 和@skipunless,但出于调试的目的,我现在只想跳过一个测试,同时理顺一些事情。
Python 的 unittest 模块有一些修饰器:
有一种普通的老式 @skip:
@skip
from unittest import skip @skip("Don't want to test") def test_something(): ...
如果由于某种原因不能使用 @skip,那么 @skipIf应该可以工作。只要使用下面的参数总是跳过就可以了。 True:
@skipIf
True
@skipIf(True, "I don't want to run this test yet") def test_something(): ...
unittest docs
跳过测试的医生
如果您只是希望不运行某些测试文件,那么最好的方法可能是使用 fab或其他工具并运行特定的测试。
fab
用于单元测试的 Django 1.10 允许使用标签。然后您可以使用 --exclude-tag=tag_name标志来排除某些标记:
--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”标记排除测试,需要运行:
slow
$ ./manage.py test --exclude-tag=slow