Django中使用的Python覆盖率执行时间太长,即使它使用--source flag选项运行

06odsfpq  于 2022-12-17  发布在  Python
关注(0)|答案(1)|浏览(81)

我将Python包与Django测试框架结合使用,有时只想测试coverage --source选项中声明的一个app/directory/package。

coverage run --source='custom_auth' manage.py test custom_auth.tests.TestAuth.test_authentication --keepdb

这个命令是否是只运行一个测试的正确方法?我还使用了--keepdb命令来忽略再次重新创建数据库。测试在0.147s内执行,但在测试之后/之前发生了一些事情,大约需要3-5分钟才能开始执行测试。

bqf10yzr

bqf10yzr1#

另一种可能更容易记住的方法是标记测试

from django.test import tag

class Tests(TestCase):

    @tag('eu')
    def test_001_default(self):        
    ...
    @tag('eu','invoice')
    def test001_invoice(self):
    ...
    @tag('eu','shipment', 'slow')
    def test_001_shipment(self): 
    ...

然后

./manage.py test --keepdb whatever.tests --tag=eu

./manage.py test --keepdb whatever.tests.name.Tests --tag=eu --exclude-tag=slow

等等。

相关问题