如何在 Angular 中测试通过测试后运行 ng 测试然后运行 ng 构建



我有一个 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

最新更新