【发布时间】:2019-09-20 07:21:29
【问题描述】:
我正在尝试测试我在 nodejs v10 中编写的代码。
每个测试都应该在开始前启动一个新的数据库容器,并在测试完成后将其拆除,以防止其他测试引起任何副作用。
我需要在 mongodb、pg、elasticsearch 等少数数据库中这样做
以下是我的测试示例
describe('test Mongo', () => {
let container = null;
beforeEach(async() => {
container = await start_a_container_using_child_process_exec(); // exec(`docker run -d --rm -p 27017:27017 mongo:latest`)
});
it('test1', () => {
// connect to database and do something
});
it('test2', () => {
// connect to database and do something
});
afterEach(async () => {
await container.remove();
});
})
它在我运行 docker 桌面的 Windows 环境中运行良好。
但是这段代码在 Gitlab-CI 中是不可运行的。下面是我的 gitlab-ci.yaml
stages:
- test
test:
image: node:10
stage: test
script:
- 'npm install'
- 'npm run test'
尝试启动容器时,我不断收到“docker: not found”错误。
是否有任何 nodejs v10 图像我可以随安装的 docker 一起获得?
或者有其他方法可以解决这个问题?
【问题讨论】:
-
好像Gitlib-Cl中没有Docker,你的节点容器不需要安装docker。这是尝试运行 docker 的 Gitlib。