sql—在postgresql回归套件中添加特定于语言环境的测试是个好主意吗?

kh212irz  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(279)

我正在开发一个与语言环境相关的特性,为了测试这个特性,我需要使用不同的语言环境设置来运行一些sql查询。例如。

SET lc_messages to 'en_US.UTF-8';
-- some sql queries;
SET lc_messages to 'fr_FR.UTF-8';
-- some sql queries;

在我的linux机器上,它正在工作,但我们不能总是期望这个集合或任何(c或posix除外)区域设置在其他平台上可用。有办法解决这个问题吗?

lrl1mhuk

lrl1mhuk1#

您有两个选择:
如果区域设置不存在,则跳过测试:
为此,你可以从以下内容开始测试

SELECT (SELECT count(*) FROM pg_collation
        WHERE collname = 'fr_FR.UTF-8') = 0
       AS skip_test \gset
\if :skip_test
\quit

然后为该案例提供另一个“预期结果文件”。
如果区域设置不存在,则出错。毕竟,这样的测试就不能正常进行。
如果您只针对linux系统,那么这可能是一个很好的解决方案。
如果你也以windows为目标,你应该在失败之前尝试使用它们的区域名称。

相关问题