gpt4 book ai didi

node.js - 在 travis-ci 上设置 postgres 数据库 url 以测试 node.js 应用程序

转载 作者:搜寻专家 更新时间:2023-11-01 00:50:25 24 4
gpt4 key购买 nike

我已经为我的 node.js 应用程序编写了一些测试,并且这些测试正在使用 Postgresql 测试数据库在本地运行。

当我运行我的测试脚本时,npm run test,环境被设置为test,当发生这种情况时,数据库连接字符串被设置为测试数据库和我在应用程序中的查询现在是在测试数据库上完成的。像这样:

let connectionString;
if (process.env.NODE_ENV === 'test') {
connectionString =`postgresql://${process.env.DB_USER}:${process.env.DB_PASS}@${process.env.DB_HOST}:${process.env.DB_PORT}/${process.env.TEST_DB_NAME}`;
} else {
connectionString =`postgresql://${process.env.DB_USER}:${process.env.DB_PASS}@${process.env.DB_HOST}:${process.env.DB_PORT}/${process.env.DB_NAME}`;
}

这样我的测试就在测试数据库上运行。

然而,在 travis 上,我知道我将需要进一步配置它自己的数据库。在 travisCI 文档中,我了解了如何设置 PostgreSQL 数据库 here ,但这对我没有帮助,因为我如何获得上面的完整数据库 URL?在 travisCI 上,我应该使用什么作为我的数据库 hostnameport 以及如何在我的代码中设置这个值?

如何设置数据库连接字符串并在我的代码中访问它?

感谢您的任何想法。

最佳答案

在搜索如何做完全相同的事情时发现了这个,但这并没有回答我的问题,所以如果其他人遇到它,我想我已经解决了。

zerosand1s 有点回答了它,但网上似乎没有任何地方可以实际说明主机名或端口应该是什么(也许我是个笨蛋,这很明显,但是:耸耸肩:)

根据 psql docs :

Defaults to the value of the PGPORT environment variable or, if not set, to the port specified at compile time, usually 5432.

所以我猜端口是 5432(您可能只使用 PGPORT 作为变量)。

在 travis 的其他地方,它说本地主机将为其他数据库(例如 mongo)绑定(bind)到 127.0.0.1,所以我也对此进行了猜测。

Travis 文档告诉我们用户为 postgres,密码为空。

我使用整个字符串进行连接,当您将其拆分时,我将整个连接字符串设置为(您可以提取每个组件):

postgres://postgres@127.0.0.1:5432/testing_db

我是在 travis 仪表板设置上做的。

令人惊讶的是,所有这一切都有效 :tada:

希望这对您有所帮助。

关于node.js - 在 travis-ci 上设置 postgres 数据库 url 以测试 node.js 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52586687/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com