我有一个在0.0.0.0:8000的AWS EC2实例上运行的Django服务器。
这个实例托管了我的开发站点(登台站点),我想使用硒针对与此实例相关联的实际Postgres DB(在RDS上)运行测试。我正在尝试从本地计算机对此服务器运行一些功能测试(从StaticLiveServerTestCase
继承)。当我在EC2实例上运行的服务器上运行FT时,我使用
STAGING_SERVER=instanceID.us-east-2.compute.amazonaws.com:8000 python manage.py test functional_tests
在我的功能测试中 我将live_server_url属性设置为在控制台命令中声明的STAGING_SERVER环境变量。
staging_server = os.environ.get('STAGING_SERVER')
if staging_server:
self.live_server_url = 'http://' + staging_server
我遇到的问题是,在测试类内部,我通过模型方法创建对象,因为我需要为某些测试填充数据库。例如,我需要创建用户,以便可以将他们登录到该站点。
我遇到的问题是,浏览器通过selenium
与我的登台服务器进行交互,并与0.0.0.0:8000进行交互,该服务器也与我的实际数据库进行交互,但是将在测试类内部创建的对象插入到创建的test_database中通过TestCase类,即我正在使用两个数据库。我希望我的金融时报能够使用实际的数据库,而不是test_database。我试图通过设置
settings.DATABASES['default']['NAME']
在setUp函数中从'test_db'到'db',但是然后我得到一个OperationalError。
详细信息:使用该数据库还有另外1个会话
任何有关在远程开发服务器上运行测试的指导,或者只是如何使StaticLiverServerTestCase使用我的actaul DB的指导,都将不胜感激。
支持信息:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'db',
'USER': 'root_user',
'PASSWORD': 'root_password',
'HOST': 'instancdID.us-east-2.rds.amazonaws.com',
'PORT': '5432',
}
}