无法在Travis CI中设置PostgreSQL,因为before_script不起作用

时间:2017-03-24 03:21:11

标签: node.js postgresql travis-ci

我尝试设置一个postgresql数据库来测试一个NodeJS项目(GitHub),但是在初始化它时失败了。我想要做的是使用before_script创建自定义凭据和数据库,但Travis CI似乎无法运行所有before_scripts。这是我的.travis.yml

language: node_js

services:
  - postgresql

addons:
  postgresql: "9.5"


node_js:
  - "node"

install:
  - yarn

before_script:
  - psql -c "CREATE DATABASE rx_reactive_test;" -U postgres
  - psql -c "CREATE USER rx_reactive_tester WITH PASSWORD '1esdf3143';" -U postgres

script:
- npm test

cache: yarn

在构建过程中没有运行psql命令,并且在运行测试时出现以下错误:

 Uncaught Error: connect ECONNREFUSED 127.0.0.1:5432

  at Object.exports._errnoException (util.js:1034:11)

  at exports._exceptionWithHostPort (util.js:1057:20)

  at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1099:14)

如需详细报告,请查看https://travis-ci.org/haoliangyu/pg-reactive/jobs/214507951。我花了几个小时寻找解决方案但我没有多少运气。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

所以你正在安装yarn那个Node.js模块,然后同时你说

node_js:
  - "node"

这看起来不对。

以下是pg-promise图书馆的一个例子:

language: node_js
sudo: required
dist: trusty
node_js:
  - "4"
  - "6"
  - "7"
addons:
  postgresql: "9.5"
script: "npm run travis"
before_script:
  - psql -c 'create database pg_promise_test;' -U postgres
  - node test/db/init.js

注意:正确格式化线条也很重要;)