我有一个 Angular 4 应用程序,我正在为其设置一个构建管道。我想做的是让管道ng test
运行,然后在测试通过后运行ng build
有没有人有我如何做到这一点的例子?
要添加到其他答案中: 从 Angular 6 开始,--single-run
不再工作,但您应该改用它:
--watch=false
下面描述如下:
测试将在通过 Karma 执行构建后执行,并且它将 自动监视文件是否有更改。您可以运行单个测试 时间通过 --watch=false。
所以现在你需要做:
ng test --watch=false && ng build
在你的package.json中,你可以创建一个自定义脚本。
"scripts": {
"build": "ng build",
"test": "ng test --single-run",
"ci": "npm run test && npm run build"
},
然后只需运行
npm run ci
ng test --single-run && ng build
解释:
- 首先确保将ng测试作为单次运行运行,否则它将永远不会终止:
ng test --single-run
。 - 然后使用双 & 符号
&&
指示下一个命令应仅在成功退出状态下运行。 - 然后
ng build
.
这应该适用于Windows和Linux系统...
我们在package.json文件中创建了一个"test-less"脚本:
"test-headless": "ng test --watch=false --browsers=ChromeHeadless"
我们的生成管道运行npm run test-headless
以在无外设浏览器中运行测试,然后在单次运行后结束测试。 我们还有第二步来运行ng build --configuration production
但您也可以在package.json中添加脚本,如下所示:
然后"ci": npm run test-headless && ng build --configuration production
生成管道中运行npm run ci
。