CircleCI Protractor 等待服务器启动

CircleCI Protractor wait for server to start

我正在尝试通过 CircleCI 在我的项目中使用 Protractor 进行 E2E 测试。

启动我的服务器需要很长时间(大约 2 分钟),并且我在测试中遇到以下错误(当服务器尚未启动时在本地显示):

Failed: Angular could not be found on the page http://test.blah.dev:3000/auth/login : retries looking for angular exceeded

这是我的 circle.yml:

machine:
  node:
    version: 5.11.0
dependencies:
  post:
    - npm run serve-dist: # starts the server
          background: true
    - sleep 150 # wait for the server to start
test:
  pre:
    - npm install -g protractor
    - webdriver-manager update
    - webdriver-manager start:
          background: true

然后我 运行 npm test,其中包括命令 protractor conf.js

我想找出一个更好的方法来等待服务器在 CircleCI 上启动。谁能告诉我我做错了什么?

所以事实证明,在我的项目设置中还有一些我遗漏的其他步骤......特别是,我需要将名称添加到 /etc/hosts 文件,以及一些环境变量到连接到我的 mongo 实例,像这样:

machine:
  hosts:
    test.blah.dev: 127.0.0.1
  environment:
    MONGOLAB_URL: mongodb://localhost/testdatabase

所以等待服务器启动不是问题(使用 background: truesleep 应该会处理等待)。