0

我有一个可重用的 Django 应用程序,我正在将它导入另一个项目。我希望能够运行该应用程序的测试,这意味着我需要自己的 settings.py 文件来进行测试。

运行这些测试的公认方式是什么?我注意到一些项目会创建一个runtests.py文件来调整 Django 设置并使用 Django 测试运行程序。

我还注意到公司内部项目告诉开发人员创建一个新的设置文件,app_tests_settings.py并使用 manage.py 运行测试:

./manage.py run tests --settings=app_tests_settings

哪种方法最好,还有其他方法可以运行使用自定义设置的特定于应用程序的测试吗?

更新:该应用程序需要一个特定的数据库后端,因为它使用 PostGIS

4

1 回答 1

0

您可以覆盖 TestCase 的 setUp 方法中的设置。

https://docs.djangoproject.com/en/dev/topics/testing/overview/#overriding-settings

更新。

来自平面页面的一些代码(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']
    ...
于 2013-06-26T17:06:44.697 回答