【问题标题】:How do I run ng test and then ng build after tests pass in Angular如何在测试通过 Angular 后运行 ng test 然后 ng build
【发布时间】:2017-08-15 17:57:52
【问题描述】:

我有一个 Angular 4 应用程序,我正在为其设置构建管道。我想做的是让管道运行ng test,然后一旦测试通过,然后运行ng build

有没有人能举例说明我如何做到这一点?

【问题讨论】:

    标签: angular angular-cli karma-jasmine


    【解决方案1】:

    添加到其他答案:从 Angular 6 开始,--single-run 不再有效,但您应该改用它:

    --watch=false
    

    描述here

    测试将在通过 Karma 执行构建后执行,它会 自动监视您的文件以进行更改。您可以单独运行测试 时间通过 --watch=false。

    所以现在你需要做:

    ng test --watch=false && ng build
    

    【讨论】:

      【解决方案2】:

      在您的 package.json 中,您可以创建自定义脚本。

      "scripts": {
      "build": "ng build",
      "test": "ng test --single-run",
      "ci": "npm run test && npm run build"
      },
      

      然后运行

      npm run ci
      

      【讨论】:

      • 这没有运行!!我正在使用 Angular6,--single-run 并没有停止测试。我也试过--watch=false 仍然是同样的问题。这个有什么更新吗?
      • 也许--no-watch?
      【解决方案3】:

      ng test --single-run && ng build

      解释:

      • 首先确保 ng test 作为单次运行运行,否则它永远不会终止:ng test --single-run
      • 然后使用双与号&& 表示下一个命令应该只在成功退出状态下运行。
      • 然后ng build

      这应该适用于 Windows 和 Linux 系统...

      【讨论】:

        【解决方案4】:

        我们在 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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-09-30
          • 2019-08-25
          • 2017-03-14
          • 2013-04-02
          • 2020-06-24
          • 1970-01-01
          • 2020-05-31
          相关资源
          最近更新 更多