Skip to content

Angular 21 new unit test builder with Karma and zone.js #32905

@szape89

Description

@szape89

Command

test

Is this a regression?

  • Yes, this behavior used to work in the previous version

The previous version in which this bug was not present was

20

Description

After upgrading from Angular 20 to 21, I ran into NGXXXX errors when running unit tests still with Karma and zone.js.
I found a closed issue and a supposed fix for it, but that did not resolve the issue.
Others experienced the same and implemented workarounds which actually do work: StackOverflow, Reddit.

I found that the solution could be that the angular.json has to be modified to be in line with the new project template like this:

  • change "builder": "@angular/build:karma" to "builder": "@angular/build:unit-test"
  • add "runner": "karma"
  • remove the rest of the properties (according to documentation these derive from the development configuration)

I did not find anything regarding the necessity of this change in the documentation, but if that is the case, it would be wise to mention it and maybe even add a migration schematic.

Also its not clear what is the alternative for "main": "src/test.ts" which contains global test setup. My guess is that the "setupFiles" property would be the successor (like "karmaConfig" became "runnerConfig"), but that is disabled for Karma.

So my question is: Where should I put global test setup with the new "unit-test" builder when using Karma?

Thanks in advance.

Minimal Reproduction

npm test

Exception or Error


Your Environment

Angular CLI       : 21.2.5
Node.js           : 24.14.0
Package Manager   : npm 11.9.0
Operating System  : win32 x64

Anything else relevant?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions