如何获取Django StaticLiveServerTestCase以使用现有数据库

时间:2019-01-20 06:00:30

标签: python django amazon-web-services selenium tdd

我有一个在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',
        }
    }

0 个答案:

没有答案