我有一个可重复使用的Django应用程序,我将其导入另一个项目。我希望能够运行该应用程序的测试,这意味着我只需要我自己的settings.py文件进行测试。
运行这些测试的可接受方式是什么?我注意到一些项目创建了一个runtests.py
文件来调整Django设置并使用Django测试运行器。
我还注意到内部公司项目要求开发人员创建一个新的设置文件app_tests_settings.py
并使用manage.py运行测试:
./manage.py run tests --settings=app_tests_settings
哪种方式最好,还有其他方法可以运行使用自定义设置的特定应用测试吗?
更新:应用程序需要特定的数据库后端,因为它使用PostGIS
答案 0 :(得分:0)
您可以覆盖TestCase的setUp方法中的设置。
https://docs.djangoproject.com/en/dev/topics/testing/overview/#overriding-settings
更新
来自flatpages(https://github.com/django/django/blob/master/django/contrib/flatpages/tests/test_csrf.py)的一些代码:
from django.test.utils import override_settings
@override_settings(
LOGIN_URL='/accounts/login/',
MIDDLEWARE_CLASSES=(
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
),
TEMPLATE_DIRS=(
os.path.join(os.path.dirname(__file__), 'templates'),
),
SITE_ID=1,
)
class FlatpageCSRFTests(TestCase):
fixtures = ['sample_flatpages', 'example_site']
...