Python 每个测试用例的Django唯一设置

Python 每个测试用例的Django唯一设置,python,django,unit-testing,django-settings,Python,Django,Unit Testing,Django Settings,我正在尝试为django插件编写一些测试。我希望每个测试用例都使用自己的设置运行,但django似乎只加载一次设置,并将其用于所有测试用例 以下是我所拥有的: 我创建了一个runtests.py,用于加载测试运行程序并运行测试 #!/usr/bin/env python import sys import django from django.conf import settings from django.apps import apps APP_NAME = 'name' settin


我正在尝试为django插件编写一些测试。我希望每个测试用例都使用自己的设置运行,但django似乎只加载一次设置,并将其用于所有测试用例

以下是我所拥有的:
我创建了一个
runtests.py
,用于加载测试运行程序并运行测试

#!/usr/bin/env python
import sys
import django

from django.conf import settings
from django.apps import apps

APP_NAME = 'name'

settings.configure(
    ...
    # common settings here
    ...
)

if hasattr(django, 'setup'):
    django.setup()

from django.test.utils import get_runner
TestRunner = get_runner(settings)
test_runner = TestRunner()
failures = test_runner.run_tests([APP_NAME])
if failures:
    sys.exit(failures)
然后我用一些测试创建了一个
tests.py

from django.test import TestCase, override_settings

class MyTests(TestCase):

    @override_settings(SOME_KEY=FIRST_VALUE)
    def test_first_test(self):
        ...

    @override_settings(SOME_KEY=SECOND_VALUE)
    def test_second_test(self):
        ...

    @override_settings(SOME_KEY=THIRD_VALUE)
    def test_third_test(self):
        ...
我知道Django不能保证测试执行顺序,我对此并不担心。我遇到的问题是,如果先执行
test\u first\u test
,那么所有测试用例都将使用
SOME\u KEY=first\u VALUE
运行

是否有办法确保django重新初始化每个测试用例的设置,以便
SOME_KEY
的值适当地更改?还是我做错了什么