Coverage in library `unit-test` includes dependent library files and does not reduce runtime when using coverage.include

Đang mở
#33,484 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
48/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Ít trao đổi
Công nghệ
angular, typescript

Hướng nghiên cứu

Bắt đầu bằng cách tái hiện vấn đề với ng test lib-a --coverage bằng cách sử dụng hai thư viện Angular workspace phụ thuộc lẫn nhau và builder @angular/build:unit-test. So sánh đầu ra coverage và thời gian thực thi khi có và không có coverage.include; được xem là hoàn tất khi các tệp của thư viện phụ thuộc bị loại trừ và việc giới hạn coverage cũng làm giảm thời gian chạy.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

angular/build:unit-test area: @angular/build
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

No response

Description

When running unit tests for a library with @angular/build:unit-test, the coverage report includes files from other workspace libraries that the tested library depends on, which is unexpected.

Although this can be restricted with coverage.include, coverage execution time remains unchanged.

Minimal Reproduction
  1. Create two Angular libraries in the workspace (e.g. lib-a and lib-b)
  2. Make lib-a depend on lib-b
  3. Add a unit test in lib-a
  4. Run tests with coverage enabled:
ng test lib-a --coverage
Observed behavior
  • The coverage report contains files from lib-b, even though only lib-a is being tested.
  • Restricting coverage.include changes the generated report but does not noticeably reduce execution time.
Performance

Times below are for a single library test run inside a larger Angular monorepo where the tested library depends on ~7 other libraries from the same workspace.
Execution times vary depending on configuration (development vs production) used to build each of the libraries.

Without coverage:

Duration 24.94s
(transform 62.28s, setup 6.91s, import 98.85s, tests 982ms, environment 13.89s)

With coverage (production build):

Duration 154.60s
(transform 78.24s, setup 13.24s, import 135.76s, tests 1.58s, environment 19.90s)

With coverage (development build)

Duration 201.20s
(transform 57.83s, setup 10.09s, import 99.85s, tests 1.25s, environment 15.00s)
Your Environment
_                      _                 ____ _     ___
    / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
   / △ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
  / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
 /_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
                |___/
    

Angular CLI       : 22.0.4
Angular           : 22.0.4
Node.js           : 24.16.0
Package Manager   : npm 11.13.0
Operating System  : linux x64

┌───────────────────────────────────┬───────────────────┬───────────────────┐
│ Package                           │ Installed Version │ Requested Version │
├───────────────────────────────────┼───────────────────┼───────────────────┤
│ @angular/animations               │ 22.0.4            │ ^22.0.4           │
│ @angular/build                    │ 22.0.4            │ ^22.0.4           │
│ @angular/cli                      │ 22.0.4            │ ^22.0.4           │
│ @angular/common                   │ 22.0.4            │ ^22.0.4           │
│ @angular/compiler                 │ 22.0.4            │ ^22.0.4           │
│ @angular/compiler-cli             │ 22.0.4            │ ^22.0.4           │
│ @angular/core                     │ 22.0.4            │ ^22.0.4           │
│ @angular/forms                    │ 22.0.4            │ ^22.0.4           │
│ @angular/localize                 │ 22.0.4            │ ^22.0.4           │
│ @angular/platform-browser         │ 22.0.4            │ ^22.0.4           │
│ @angular/platform-browser-dynamic │ 22.0.4            │ ^22.0.4           │
│ @angular/router                   │ 22.0.4            │ ^22.0.4           │
│ @angular/service-worker           │ 22.0.4            │ ^22.0.4           │
│ ng-packagr                        │ 22.0.0            │ ^22.0.0           │
│ rxjs                              │ 7.8.2             │ ~7.8.2            │
│ typescript                        │ 6.0.3             │ ^6.0.3            │
│ vitest                            │ 4.1.9             │ ^4.1.9            │
│ zone.js                           │ 0.16.2            │ ~0.16.2           │
└───────────────────────────────────┴───────────────────┴───────────────────┘
Anything else relevant?

No response

Ngôn ngữ chính
TypeScript
Star
27k
Fork
11.8k
Merge trung bình
16 giờ 21 phút
Pull request đã merge (30 ngày)
170

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của angular/angular-cli

Tất cả issue của angular/angular-cli

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.