有没有办法检查设置并仅在该设置为True时运行测试? 是否可以在setup方法中执行此操作,以便在标志设置为false时不运行测试用例?
答案 0 :(得分:3)
这样做的规范方法是使用skipIf and skipUnless。您可以使用它们跳过整个测试用例或特定测试。
from unittest import skipIf
from django.conf import settings
from django.test import TestCase
@skipIf(settings.MY_SETTING == 'whatever', 'ensure setting is set')
class MyTestCase(TestCase):
# ...
pass
class MyTestCase2(TestCase):
@skipIf(settings.MY_SETTING == 'whatever', 'ensure setting is set')
def test_something(self):
# ...
pass
答案 1 :(得分:2)
您可以通过扩展django' test
命令来创建自己的test
command。
在那里你检查设置并优先运行测试。
from django.core.management import CommandError
from django.core.management.commands.test import Command as TestCommand
class Command(TestCommand):
def __init__(self):
from django.conf import settings
try:
if not settings.TEST_SETTING:
raise CommandError('Command error')
except:
raise CommandError('Command Error')
super(Command, self).__init__()