postgresql - 后端postgres的测试策略

标签 postgresql testing

我想测试一个对 Postgres 数据库执行查询的后端。据我所知,模拟 postgres 是不可能的(与 MongoDB 相反),应该查询一个真实的数据库。

所以我的第一个问题是,测试 postgres 查询的标准策略是什么?

现在,我正在尝试重新创建一个没有数据的数据库,以便我可以为每个测试插入信息并完全控制输出。但是,尚不清楚如何做到这一点。到目前为止,我已经想出了类似的东西:

pg_dump mydb --schema-only | pg_restore testdb

但是它真的很慢。我想原因之一是,如果测试客户端与数据库不在同一个网络中,那么 pg_dump 将不得不通过网络获取所有信息,然后将其发送回同一台机器。

我想我正在寻找的东西类似于

Create new database testdb with template mydb 

它只复制了模式信息并且没有强制关闭所有连接。

最佳答案

我认为您关于模板数据库的想法是最好的。

为什么不创建一个和mydb一样的模板数据库,只是没有数据?如果您的问题是 mydb 频繁更改架构,请使用一种部署技术,将所有架构更改应用于 mydb 和模板数据库。

关于postgresql - 后端postgres的测试策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39568389/

相关文章:

python - 为导入的库静音 Pytest 库输出

python - ReactorNotRestartable 在使用 twisted 和 trial 启动两个等效的单元测试时

sql - SORT 的成本正在减慢我的查询

sql - 总结所有以前的每一行

qt - 如何测试 PyQt 中的拖放行为?

php - Laravel 5.2 测试 : Test is not running

java - 有没有办法根据 Activity 配置文件不启动 spring boot 应用程序?

postgresql - 为什么这个 Postgres 函数不正确?

java - 为什么 PostgreSQL 查询后部分 Java 代码没有执行?

sql - 将一个表中的值赋给另一个表