nodejs:如何 运行 测试然后构建 dockerfile
nodejs: how to run tests and then build dockerfile
我正在尝试创建一个基本的 CI CD 管道,我正在尝试创建用于 运行 测试的批处理文件,然后执行 docker 构建。这是我的基本批处理文件
@ECHO OFF
call npm run test
call docker build -t my-docker-file .
PAUSE
我如何知道所有测试是否都运行成功?我正在使用 mocha 和 chai
首先,您需要使用 --exit
标志来执行您的测试。我的 package.json 看起来像这样:
"test": "mocha test --timeout 4000 --exit"
因此当测试完成时,控制台不会卡在打开状态。
然后,想法是在批处理和节点之间创建通信。我用过 bash 但思路是一样的。
基本上是在测试通过后写入 .env 文件,并在执行后检查变量是否设置为 true。
首先,要做到这一点,您需要用这个更新您的 test.js
文件。
我用envfile
。你可以检查这个
//get the reference to your environment file and update
//THIS is you have to add
afterEach(function () {
const state = this.currentTest.state;
if (state !== "passed") {
//write into .env: MYENVVAR=0
}
});
然后,您将在 .env
文件中加入一个变量,以了解测试是否已正确执行。
因此,下一步是读取批处理中的值,如果可以则继续。
我正在尝试创建一个基本的 CI CD 管道,我正在尝试创建用于 运行 测试的批处理文件,然后执行 docker 构建。这是我的基本批处理文件
@ECHO OFF
call npm run test
call docker build -t my-docker-file .
PAUSE
我如何知道所有测试是否都运行成功?我正在使用 mocha 和 chai
首先,您需要使用 --exit
标志来执行您的测试。我的 package.json 看起来像这样:
"test": "mocha test --timeout 4000 --exit"
因此当测试完成时,控制台不会卡在打开状态。
然后,想法是在批处理和节点之间创建通信。我用过 bash 但思路是一样的。
基本上是在测试通过后写入 .env 文件,并在执行后检查变量是否设置为 true。
首先,要做到这一点,您需要用这个更新您的 test.js
文件。
我用envfile
。你可以检查这个
//get the reference to your environment file and update
//THIS is you have to add
afterEach(function () {
const state = this.currentTest.state;
if (state !== "passed") {
//write into .env: MYENVVAR=0
}
});
然后,您将在 .env
文件中加入一个变量,以了解测试是否已正确执行。
因此,下一步是读取批处理中的值,如果可以则继续。