2016-09-08 7 views
0

私のプロジェクトでは、正確には3つのデータベースを使用しています。 1つのデフォルトデータベースと、2つの参照データベース(別のホスト)があります。私は./manage.py inspectdbで検査された2つの外部データベースから4つのテーブルを使用しています。彼らはmanaged=False に設定されています。すべて正常に動作し、私のアプリケーションは期待どおりに動作し、計画されています。Djangoとpytest、複数のデータベース、削除を維持

今、楽しいことが始まります。私はテストを書く必要があります。私は自分のデータベースを削除したくありません。 私はそれらから読む必要があります、私は器具を作成したくありません。 pytestまたはカスタムdjangoテストを使用しようとするたびに、データベースの削除、再作成、マイグレーションなどを実行しようとしています。

どうすれば保存できますか? pytestまたはdjangoのどちらのテストですか?私は--re-usedbと別のパラメータのカップルにしようとしました。

これは、あなたがその移行を確保するために、「--no-移行」フラグを追加することができる必要がありpytest.iniの内側だから私のデータベースの設定(アップロードすることができる部分)

DATABASES = { 
    'default': { 
     'ENGINE': 'django.contrib.gis.db.backends.postgis', 
     'NAME': 'default_db', 
     'USER': 'default_usr', 
     'PASSWORD': 'default_pass', 
     'HOST': 'postgres.somehost.com', 
     'SUPPORTS_TRANSACTIONS': True, 
    }, 
    'geolocations': { 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     'OPTIONS': { 
      'options': '-c search_path=some_schema' 
     }, 
     'NAME': 'geo_name', 
     'USER': 'geo_user', 
     'PASSWORD': 'geo_password', 
     'HOST': 'some-host.domain.com', 
     'SUPPORTS_TRANSACTIONS': True, 
    }, 
    'eoc': { 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     'OPTIONS': { 
      'options': '-c search_path=another_schema' 
     }, 
     'NAME': 'eco_name', 
     'USER': 'eoc_user', 
     'PASSWORD': 'eoc_', 
     'HOST': 'some-another-host.domain.com', 
     'SUPPORTS_TRANSACTIONS': True, 
    } 
} 

答えて

0

ですされていません。 pytestマーカーpytest documentationを使用すると、データベースにアクセスできるようになります。

あなたが必要とするマークです:

pytestmark = pytest.mark.django_db 
関連する問題