Hao*_* Yu 13 postgresql gitlab-ci
我正在尝试在GitLab.com上设置一个CI运行器,我想用它来运行需要PostgreSQL数据库连接的测试.CI + PostgreSQL的文档似乎过于简单,似乎告诉我们一旦提供了连接信息,就完成了数据库设置.因为我无法创建数据库,所以我可能会误解文档.我gitlab-ci.yml
看起来像这样
image: node:latest
services:
- postgres:latest
variables:
POSTGRES_DB: rx_reactive_test
POSTGRES_USER: rx_reactive_tester
POSTGRES_PASSWORD: "1esdf3143"
cache:
paths:
- node_modules/
postgresql:
script:
- yarn install
- npm test
Run Code Online (Sandbox Code Playgroud)
通过运行命令npm test`,它将运行一些将与数据库建立连接的测试.但是这些测试失败并显示错误消息
pg-reactive
? should build connection with the test database.
1) should run a query returning one row.
1 passing (23ms)
1 failing
1) pg-reactive should run a query returning one row.:
Uncaught Error: connect ECONNREFUSED 127.0.0.1:5432
at Object.exports._errnoException (util.js:1033:11)
at exports._exceptionWithHostPort (util.js:1056:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1099:14)
Run Code Online (Sandbox Code Playgroud)
这些测试与我的本地测试数据库运行良好,因此我的CI设置一定存在问题.我会感谢任何有关我的问题的帮助:-)
在GitLab CI中,您的工作是在docker容器中运行.因此,Postgres不是在localhost上运行,而是在"postgres"上可访问的主机上(服务名称是解析为可用于访问数据库的IP的服务器名称).
看起来CI设置了一个名为"CI"的ENV变量,这样您就可以将CI连接进行测试,从"localhost:5432"切换到"postgres:5432",以防您在GitLab CI环境中运行.
归档时间: |
|
查看次数: |
4800 次 |
最近记录: |