如何在 flask-tesing 中创建测试 Postgres 数据库

How to create test Postgres db in flask-tesing

提问人:Tiancheng Liu 提问时间:8/31/2020 更新时间:8/31/2020 访问量:1464

问:

我正在使用 flask-testing 在 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

我怎样才能在这个班级里创作?我正在使用 Python 3.6 和最新的 flask 和 flask-sqlalchemy。谢谢。test_dbBaseTest

PostgreSQL 单元 烧瓶 -SQLALCHEMY 烧 测试

评论

0赞 Jürgen Gmach 8/31/2020
在使用 sqlalchemy 时,可以使用 sqllite 进行测试。
8赞 Tiancheng Liu 8/31/2020
如果我有Postgres特定的功能,我不能使用sqlite
0赞 Adrian Klaver 9/1/2020
要么在测试之外创建数据库,要么在测试中包括 SQL,然后删除它。CREATE DATABASE test_db

答: 暂无答案