运行 ng 测试时无法在项目中找到配置

Configuration could not be found in project when running ng test

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

是运行这条命令:

ng test -c karma.conf.cli.js

但是错误是:

Configuration 'karma.conf.cli.js' could not be found in project 'projectname'

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

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

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

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

与:

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

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

我尝试了很多,对我有用的如下。在您的 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 配置文件的配置部分中设置,并且 运行 使用该配置文件进行单元测试。