2

Django1.3 アプリケーションのテストに Django Selenium を使用しようとしています。テスト用のデータベース バックエンドは sqlite3 です。

これが私の設定ファイルのスニペットです。

if 'test' in sys.argv:
    DB_ENGINE = 'django.db.backends.sqlite3'
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3',   
            'TEST_NAME': ':memory:',  
            'NAME': 'database_one',                  
        },
        'database_two': {
            'ENGINE': 'django.db.backends.sqlite3',        ]
            'TEST_NAME': ':memory:',  
            'NAME': 'database_two',          
        },
        'database_three': {
            'ENGINE': 'django.db.backends.sqlite3',  
            'TEST_NAME': ':memory:',  
            'NAME': 'database_three',        
        },
    }
    SOUTH_TESTS_MIGRATE = False

セレンテストを実行すると、次のエラーが表示されます

DatabaseError: no such table: django_session
ERROR

実際のところ、テストの作成中に、テーブルが次のように出力に作成されることが示されます。

Creating test database for alias 'default' (':memory:')...
Creating tables ...
Creating table django_content_type
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_user_permissions
Creating table auth_user_groups
Creating table auth_user
Creating table auth_message
Creating table django_session

他の場所でこれについて何も見つけることができないので、私は文字通りここで立ち往生しています。

PS: テストは postgres (私の実際の prod db エンジン) で正常に動作しますが、postgres はテストの実行時に db のセットアップとティアダウンに多くの時間がかかるため、sqlite3 を使用したいと考えています。

前もって感謝します :)

4

1 に答える 1

2

それがメモリ内にある場合(あなたの例のように)、2番目に閉じられると、データは消えます。

問題を解決する実際のdbファイルを作成します。これは、ファイルへの絶対パスを指定するだけで実行できます。パスがない場合は、ファイルが作成されます。

于 2013-07-17T15:05:14.763 に答える