3

我想创建集成测试,以便可以在我的数据库中创建单个模型的 1000 条记录。

对于我的 settings.py 文件,我指定default在运行测试时使用相同的数据库。

if 'test' in sys.argv or 'test_coverage' in sys.argv:
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
            'NAME': 'TableName',                      # Or path to database file if using sqlite3.
            'USER': 'postgres',                      # Not used with sqlite3.
            'PASSWORD': 'password',                  # Not used with sqlite3.
            'HOST': 'localhost',                      # Set to empty string for localhost. Not used with sqlite3.
            'PORT': '5432',                      # Set to empty string for default. Not used with sqlite3.
        }
    }

当我运行该命令时,python manage.py test <app>我收到一条错误消息,指出我有两个会话正在运行。

 Got an error creating the test database: source database "template1" is being accessed by other users
DETAIL:  There are 1 other session(s) using the database.
4

1 回答 1

3

确保python manage.py runserver在运行测试之前禁用该或任何其他访问您的 postgresql 的进程(例如 pgadmin3 或 phppgadmin)。

换句话说,请确保您已经为您的应用程序终止了正在运行的 postgresql 连接

您还可以通过以下方式确定应用程序正在与您的 postgresql 数据库建立哪些打开的连接

psql -U postgres

postgres=# SELECT * FROM pg_stat_activity;

如果你想具体一点,你可以这样做: -

postgres=# SELECT * FROM pg_stat_activity where datname = 'TaleeboBixin';
于 2012-12-30T00:48:35.223 回答