Angular 13 + jest + Angular 库不工作
Angular 13 + jest + Angular library not working
我正在尝试在 Angular 13 项目中使用 jest 进行测试。
我使用 jest-preset-angular 和 @angular-builders/jest.
我使用 ngx-pipes,它是一个没有为 Angular13 编译的库。它在正常 Angular 构建期间工作正常。但是在开玩笑的测试中 运行 它会导致错误:
Error: Unexpected value 'NgStringPipesModule2' imported by the module 'DynamicTestModule'. Please add an @NgModule annotation.
最小复制:https://github.com/dhcode/jest-preset-angular-13-issue
在我的实际项目中,我对其他 Angular 库也有同样的错误。
我之前 运行 ng serve
,所以 ngcc 编译是在 运行 测试之前完成的。
如何进行测试 运行 并识别使用旧 Angular 版本构建的外部库?
从表面上看,ngx-pipes
尚未发布 Ivy 发行版,您的项目在 运行 测试之前仍需要 ngcc
。
// package.json
{
"scripts": {
"test": "ngcc && ng test"
}
}
> jest-tests@0.0.0 test
> ngcc && ng test
Processing legacy "View Engine" libraries:
- ngx-pipes [fesm2015/esm2015] (https://github.com/danrevah/ngx-pipes.git)
- ngx-pipes [esm2015/esm2015] (https://github.com/danrevah/ngx-pipes.git)
- ngx-pipes [main/umd] (https://github.com/danrevah/ngx-pipes.git)
Encourage the library authors to publish an Ivy distribution.
PASS src/app/app.component.spec.ts
AppComponent
✓ should create the app (163 ms)
✓ should have as title 'jest-tests' (46 ms)
✓ should render title (44 ms)
✓ should render shortened text (33 ms)
-------------------|---------|----------|---------|---------|-------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
-------------------|---------|----------|---------|---------|-------------------
All files | 100 | 100 | 100 | 100 |
...component.html | 100 | 100 | 100 | 100 |
app.component.ts | 100 | 100 | 100 | 100 |
-------------------|---------|----------|---------|---------|-------------------
Test Suites: 1 passed, 1 total
Tests: 4 passed, 4 total
Snapshots: 0 total
Time: 3.526 s, estimated 5 s
Ran all test suites.
我正在尝试在 Angular 13 项目中使用 jest 进行测试。 我使用 jest-preset-angular 和 @angular-builders/jest.
我使用 ngx-pipes,它是一个没有为 Angular13 编译的库。它在正常 Angular 构建期间工作正常。但是在开玩笑的测试中 运行 它会导致错误:
Error: Unexpected value 'NgStringPipesModule2' imported by the module 'DynamicTestModule'. Please add an @NgModule annotation.
最小复制:https://github.com/dhcode/jest-preset-angular-13-issue
在我的实际项目中,我对其他 Angular 库也有同样的错误。
我之前 运行 ng serve
,所以 ngcc 编译是在 运行 测试之前完成的。
如何进行测试 运行 并识别使用旧 Angular 版本构建的外部库?
从表面上看,ngx-pipes
尚未发布 Ivy 发行版,您的项目在 运行 测试之前仍需要 ngcc
。
// package.json
{
"scripts": {
"test": "ngcc && ng test"
}
}
> jest-tests@0.0.0 test
> ngcc && ng test
Processing legacy "View Engine" libraries:
- ngx-pipes [fesm2015/esm2015] (https://github.com/danrevah/ngx-pipes.git)
- ngx-pipes [esm2015/esm2015] (https://github.com/danrevah/ngx-pipes.git)
- ngx-pipes [main/umd] (https://github.com/danrevah/ngx-pipes.git)
Encourage the library authors to publish an Ivy distribution.
PASS src/app/app.component.spec.ts
AppComponent
✓ should create the app (163 ms)
✓ should have as title 'jest-tests' (46 ms)
✓ should render title (44 ms)
✓ should render shortened text (33 ms)
-------------------|---------|----------|---------|---------|-------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
-------------------|---------|----------|---------|---------|-------------------
All files | 100 | 100 | 100 | 100 |
...component.html | 100 | 100 | 100 | 100 |
app.component.ts | 100 | 100 | 100 | 100 |
-------------------|---------|----------|---------|---------|-------------------
Test Suites: 1 passed, 1 total
Tests: 4 passed, 4 total
Snapshots: 0 total
Time: 3.526 s, estimated 5 s
Ran all test suites.