【发布时间】:2017-08-15 17:57:52
【问题描述】:
我有一个 Angular 4 应用程序,我正在为其设置构建管道。我想做的是让管道运行ng test,然后一旦测试通过,然后运行ng build
有没有人能举例说明我如何做到这一点?
【问题讨论】:
标签: angular angular-cli karma-jasmine
我有一个 Angular 4 应用程序,我正在为其设置构建管道。我想做的是让管道运行ng test,然后一旦测试通过,然后运行ng build
有没有人能举例说明我如何做到这一点?
【问题讨论】:
标签: angular angular-cli karma-jasmine
添加到其他答案:从 Angular 6 开始,--single-run 不再有效,但您应该改用它:
--watch=false
描述here:
测试将在通过 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
【讨论】:
--single-run 并没有停止测试。我也试过--watch=false 仍然是同样的问题。这个有什么更新吗?
--no-watch?
ng test --single-run && ng build
解释:
ng test --single-run。&& 表示下一个命令应该只在成功退出状态下运行。ng build。这应该适用于 Windows 和 Linux 系统...
【讨论】:
我们在 package.json 文件中创建了一个“test-headless”脚本:
"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。
【讨论】: