109

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

@skipif 和 @skipunless 是我发现的全部内容,但我现在只想跳过测试以进行调试,同时理顺一些事情。

4

2 回答 2

182

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或其他工具并运行特定测试。

于 2013-07-08T05:25:15.163 回答
79

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
于 2016-09-21T16:27:57.683 回答