【问题标题】:Configuration could not be found in project when running ng test运行 ng test 时在项目中找不到配置
【发布时间】:2018-06-12 08:12:26
【问题描述】:

我刚刚升级到 Angular 6,但现在我们的 Jenkins 构建失败了。

它正在运行这个命令:

ng test -c karma.conf.cli.js

但错误是:

在项目“projectname”中找不到配置“karma.conf.cli.js”

但是,有问题的文件存在于项目的根目录中。该命令在 Angular 5 上运行良好。有什么想法吗?谢谢

仅供参考,我可以通过在构建服务器上运行相同的命令来重现该错误。我们还刚刚将 Node.js 升级到 v8.11.2(最新 LTS)

【问题讨论】:

  • 手动运行同样的命令会是什么结果?
  • 完全一样的结果
  • 尝试创建一个新的 Angular 6 项目来检查会发生什么。听起来很奇怪
  • 我在这里提出了一个 GitHub 错误报告...github.com/angular/angular-cli/issues/11207

标签: node.js angular angular-cli karma-runner angular6


【解决方案1】:

在 Angular Cli 版本 6 中,命令的选项已更改,改为使用 -c,您应该使用 --karma-config--configuration。你可以看到所有选项here

【讨论】:

  • --karma-config 看起来很有希望,尝试 +1,当我再次开始工作时,我会接受你的答案,如果它是正确的 - 我相信它是正确的 - 很多谢谢
【解决方案2】:

我尝试了很多,对我有用的一个如下。在您的angular.json 文件中添加下面测试的配置部分。

    "test": {
      "builder": "@angular-devkit/build-angular:karma",
      "options": {
         ....
      },
      "configurations": {  // this will hold a different configuration
        "jenkins": {
          "karmaConfig": "./karma.conf.ci.js"
        }
      }
    },

然后在运行测试时将此配置与--configuration jenkins 选项一起使用。所以最终的命令将是

ng test --configuration jenkins

它将选择 karma.conf.ci.js 作为配置文件,因为它在 angular cli 配置文件的配置部分中设置,并使用该配置文件运行单元测试。

【讨论】:

    【解决方案3】:

    在 Angular 6 之后我在 Jenkins 中遇到了同样的问题,我通过替换解决了:

    ng test --single-run --browsers ChromeHeadless -cc 
    

    与:

    ng test --watch=false --browsers ChromeHeadless --code-coverage
    

    【讨论】:

      猜你喜欢
      • 2018-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-24
      • 1970-01-01
      • 2020-08-25
      • 2023-04-10
      相关资源
      最近更新 更多