问题标签 [pgtap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
73 浏览

sql - 查询没有结果数据的目的地 pg tap postgres sql

我有一个简单的单元测试要在 pgtab https://pgtap.org/documentation.html#is中运行,如下所示

当我写SELECT has_table('unit_test_expected_results');里面时beginend我面临以下错误

任何帮助将不胜感激

这是 pgtab 扩展的功能

如果我写下面的代码

这行得通,但是在输出窗口中没有结果,但是,如果我在开始和结束之外写,一切都可以正常工作

0 投票
0 回答
28 浏览

sql - 选择 * FROM 完成();PgTab 不能使用来自嵌套循环 PostGresSQL 的函数返回值

下面的函数有一个嵌套循环,并试图返回finish()函数的值,PgTap如下所示

当我尝试执行以下命令时

输出控件上的完成点击为空白 在此处输入图像描述

输出控制台有下面的记录

在此处输入图像描述

0 投票
0 回答
54 浏览

postgresql - 如何使用模拟数据测试 PostgreSQL 脚本?

如何创建以下测试:

我有一个 PostgreSQL 脚本。我希望测试创建模拟数据,在这些表上调用脚本并从模拟数据创建结果表,并将此结果与我定义的一些预期结果表进行比较。

我使用 pgTAP 来测试生成的数据库,但是这样我只能测试在脚本中创建的表,但我希望使用不同的模拟数据进行多次测试。

这可能使用 pgTAP 吗?还是另一种方式?

这是我的脚本的样子:

0 投票
1 回答
23 浏览

postgresql - Postgres:如何在比较之前转换两个游标中的数据?

我正在替换get_data我们数据库中的一个遗留函数,它需要一些entity_id并返回一个引用。

我正在编写一个get_data_new使用不同数据源的新函数,但输出应该与get_data相同输入的相同。

我想用 pgtap 验证这一点,并在测试中这样做(使用_expected_actual作为返回游标的名称):

这对其他函数按预期工作,但查询get_data恰好返回一些json列,这意味着比较预期会失败ERROR: could not identify an equality operator for type json

我宁愿保留遗留功能不变,因此jsonb无法重构。我正在想象一种解决方法是在比较之前转换数据,假设使用类似的东西SELECT entity_id, json_column::jsonb FROM (FETCH ALL FROM _actual),但这种特定的尝试显然是无效的。

这里建议的方法是什么?编写一个辅助函数将游标中的数据插入到几个临时表中?我希望有一个我还没有发现的更清洁的解决方案。

使用 postgres 11.14,pgtap11