13

テスト中にのみ特定のミドルウェア (私が作成したカスタム ミドルウェア) を無効にするにはどうすればよいですか?

4

4 に答える 4

11

https://docs.djangoproject.com/en/dev/topics/testing/tools/#django.test.override_settings

from django.test import TestCase, override_settings
from django.conf import settings

class MyTestCase(TestCase):

    @override_settings(
        MIDDLEWARE_CLASSES=[mc for mc in settings.MIDDLEWARE_CLASSES
                            if mc != 'myapp.middleware.MyMiddleware']
    )
    def test_my_function(self):
        pass
于 2015-08-12T17:56:56.397 に答える
8

いくつかのオプションがあります:

  • テスト用に別のtest_settings設定ファイルを作成し、次の方法でテストを実行します。

    python manage.py test --settings=test_settings 
    
  • にある場合はsettings.pyその場で変更しますtestsys.argv

    if 'test' in sys.argv:
         # modify MIDDLEWARE_CLASSES
          MIDDLEWARE_CLASSES = list(MIDDLEWARE_CLASSES)
          MIDDLEWARE_CLASSES.remove(<middleware_to_disable>)
    

それが役立つことを願っています。

于 2013-08-02T20:14:03.917 に答える