如何将 Karma 插件添加到没有 karma.conf.js 的 Angular 16

How to add a Karma plugin to an Angular 16 that has no karma.conf.js

提问人:peterc 提问时间:10/26/2023 更新时间:10/30/2023 访问量:123

问:

我有一个使用 v16 CLI 创建的 Angular 项目。所有单元测试都可以在本地使用 。ng test

我现在想将它们设置为在运行 teamcity 的构建机器上运行。在之前的 Angular 项目(我没有设置)中,它们都有一个 ,还有一个 ,它有注释karma.conf.jssrc/test.ts

karma.conf.js 需要此文件,并以递归方式加载所有 .spec 和框架文件

在以前的项目中,我已经安装了 ,然后在 我添加到 plugins 数组中,然后我们可以使用karma-teamcity-reporterkarma.confi.js require('karma-teamcity-reporter')ng test --watch=false --browsers=ChromeHeadless --reporters=teamcity

但是,当我为我的新项目做同样的事情时,没有 ,or .如果我搜索另一行,就像我找不到它一样。karma.conf.jssrc/test.tsrequire('karma-jasmine')

我不确定是否有人在旧项目中(不再在这里)添加并设置了自己,但我的问题是我现在如何将其添加到我的 Angular 项目中?karma.conf.jskarma-teamcity-reporter

业力-茉莉花 业力奔跑者

评论


答:

1赞 Alberto Fecchi 10/26/2023 #1

更新

使用和/或编辑您在该部分和该部分下的添加创建 Karma 配置。ng generate config karmaangular.json"karmaConfig": "karma.conf.js"test > options"builder": "@angular-devkit/build-angular:karma"test

中的部分示例:testangular.json

{
  // ... more stuff
  "projects": {
    "project_ name": {
      // ... stuff
      "architect": {
        // ... stuff
        "test": {
          "builder": "@angular-devkit/build-angular:karma",
          "options": {
            "polyfills": [
              "zone.js",
              "zone.js/testing"
            ],
            "tsConfig": "tsconfig.spec.json",
            "inlineStyleLanguage": "scss",
            "assets": [
              "src/favicon.ico",
              "src/assets"
            ],
            "styles": [
              "src/styles.scss"
            ],
            "scripts": [],
            "karmaConfig": "karma.conf.js"
          }
        }
      }
    }
  }
}

旧答案:

您需要安装官方 CLI,然后使用以下命令初始化配置文件:init

$ npm install -g karma-cli
$ karma init my.conf.js

参考资料: http://karma-runner.github.io/6.4/intro/installation.html and http://karma-runner.github.io/6.4/intro/configuration.html

评论

0赞 peterc 10/26/2023
我做了上面的事情,这给了我(这是我给它的帽子名字)。然后我添加了(以及其他一些 Angular 项目),但是在 Teamcity 上,它仍然报告karma.conf.jsplugins: [require('karma-teamcity-reporter')]26 10 2023 17:01:58.343:ERROR [reporter]: Can not load reporter "teamcity", it is not registered!
0赞 Alberto Fecchi 10/26/2023
你跑了吗?npm install karma-teamcity-reporter
0赞 Alberto Fecchi 10/26/2023
尝试完全删除“插件”配置。在这种情况下,Karma 将查找以node_moduleskarma-
0赞 peterc 10/30/2023
@Albero - 是的,我已经安装了,并且我的文件夹在 .我尝试删除插件部分,但仍然出现来自 TC 的相同错误 也许 Angular(运行时)只是不看这个配置?karma-teamcity-reporternode_modules30 10 2023 07:03:54.209:ERROR [reporter]: Can not load reporter "teamcity", it is not registered!ng test
1赞 peterc 10/30/2023
谢谢,这现在可以工作了!对我来说缺少的位是 ,添加这个后,它现在可以在 TC 上运行。"karmaConfig": "karma.conf.js"angular.json