【问题标题】:Custom settings.py for Django reusable appsDjango 可重用应用的自定义 settings.py
【发布时间】:2013-06-23 22:50:24
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: django django-testing django-apps


    【解决方案1】:

    您可以覆盖 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']
        ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-18
      • 1970-01-01
      • 2016-10-27
      • 2013-06-12
      • 1970-01-01
      • 2020-05-22
      • 2012-09-23
      相关资源
      最近更新 更多