如何在GitLab-CI测试中启动活动库



我在我的gitlab repo

中具有以下代码

package.json

{ 
  ...
  "scripts": {
    "test": "mocha --require ts-node/register --watch-extensions ts,tsx "src/**/*.{spec,test}.{ts,tsx}""
  }
  ...
}

.gitlab-ci.yml

stages:
  - test
test:
  image: node:8
  stage: test
  script:
    - npm install
    - npm run test

test.ts

import { exec } from 'child_process';
import { promisify } from 'util';
const Exec = promisify(exec);
describe(test, async () => {
  before(async () => {
    // next line doesn't work in GitLab-CI
    await Exec(`docker run -d --rm -p 1113:1113 -p 2113:2113 eventstore/eventstore`);
    // an so on
  })
});

当我在本地计算机中运行" NPM运行测试"时,它运行良好。

我的问题是如何在gitlab-ci中运行此测试?

如果您尝试运行连接到EventStore Docker的测试,则可以使用Gitlab服务:

gitlab ci使用服务关键字来定义什么docker容器 应与您的基本图像链接。

首先,您需要设置Docker executor

然后,您将能够将EventStore用作服务。这是Postgres的示例。更多信息在这里。

示例:

test_server:
    tags:
      - docker
    services:
      - eventstore:latest
    script:
      - npm install && npm run test

编辑:

访问服务:

该服务主机名的默认别名是从其映像名称

创建的

或使用别名:

services:
- name: mysql:latest
  alias: mysql-1

最新更新