首页 > 解决方案 > 如何在烧瓶测试中创建测试 Postgres 数据库

问题描述

我正在使用烧瓶测试对 Postgres 应用程序进行一些单元测试。根据doc,我有以下代码。

from flask_testing import TestCase
from src.game.models import db
from src import create_app    
class BaseTest(TestCase):
    SQLALCHEMY_DATABASE_URI = 'postgresql://demo:demo@postgres:5432/test_db'
    TESTING = True

    def create_app(self):
        # pass in test configuration
        return create_app(self)

    def setUp(self):
        db.create_all()

    def tearDown(self):
        db.session.remove()
        db.drop_all()

当然我得到了这个错误

sqlalchemy.exc.OperationalError:(psycopg2.OperationalError)致命:数据库“test_db”不存在

我确实有一个数据库postgresql://demo:demo@postgres:5432/demo,它是我的生产数据库。

我怎样才能test_db在这个BaseTest类中创建?我正在使用 Python 3.6 和最新的烧瓶和烧瓶-sqlalchemy。非常感谢。

标签: postgresqlunit-testingflaskflask-sqlalchemyflask-testing

解决方案


推荐阅读