0

再利用可能な Django アプリがあり、それを別のプロジェクトにインポートしています。そのアプリのテストを実行できるようにしたいので、テスト用に独自の settings.py ファイルが必要です。

これらのテストを実行するために受け入れられている方法は何ですか? runtests.py一部のプロジェクトでは、Django の設定を調整し、Django テスト ランナーを使用するファイルを作成していることに気付きました。

また、社内プロジェクトが開発者に新しい設定ファイルを作成し、app_tests_settings.pymanage.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 に答える