【问题标题】:Set postgres database url on travis-ci for testing node.js application在 travis-ci 上设置 postgres 数据库 url 以测试 node.js 应用程序
【发布时间】:2019-03-06 07:15:12
【问题描述】:

我已经为我的 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,以及如何在我的代码中设置此值?

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

感谢您的任何想法。

【问题讨论】:

    标签: node.js postgresql express testing travis-ci


    【解决方案1】:

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

    zerosand1s 有点回答它,但似乎没有任何地方在线说明主机名或端口应该是什么(也许我很愚蠢,这很明显,但是 :shrug:)

    根据psql docs

    默认为 PGPORT 环境变量的值,如果未设置,则为编译时指定的端口,通常为 5432。

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

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

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

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

    postgres://postgres@127.0.0.1:5432/testing_db

    我在 travis 仪表板设置中执行此操作。

    令人惊讶的是,这一切都奏效了:tada:

    希望这会有所帮助。

    【讨论】:

    • 注意,还包括下面提到的before_script
    • 我也觉得这可能过于复杂,但它现在可以工作,也许整个字符串有一个更简单的版本
    • 很好的第一个答案!当然节省了我在文档中的一些搜索。
    【解决方案2】:

    根据文档,您可以使用 before_scriptlike so 创建数据库

    before_script:
      - psql -c "CREATE DATABASE testing_db;" -U postgres
    

    然后您可以将您的数据库凭据(以及数据库名称和端口等)添加到 travis 环境变量中

    travis encrypt DB_USER=TEST_DB_USER --add env.matrix
    

    您可以在 travis 环境变量 here 上找到更多信息。您还可以在存储库设置下的 travis 仪表板上添加环境变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-26
      • 1970-01-01
      • 2013-11-12
      • 2014-09-26
      • 2013-11-17
      • 2014-06-30
      • 1970-01-01
      相关资源
      最近更新 更多