我想创建集成测试,以便在数据库中创建单个模型的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.
答案 0 :(得分: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';