问题描述
升级到Angular 10后,我在运行库的单元测试时遇到问题。
我有两个项目库。例如 LibTest1 HeroTest2
HeroTest2使用LibTest1
项目tsconfig.json包含
{
.......
"baseUrl": "./",.....
"paths": {
"LibtTest1": [
"dist/LibTest1"
],"LibTest1/*": [
"dist/LibTest1/*"
],"HeroTest2": [
"dist/HeroTest2"
],"HeroTest2/*": [
"dist/HeroTest2/*"
]
}
}
}
HeroTest2项目库tsconfig.lib.json包含
"
{
extends": "../../tsconfig.json",.....
}
HeroTest2项目库tsconfig.spec.json包含
"
{
extends": "../../tsconfig.json",.....
}
HeroTest2 package.json包含的项目库
{
"name": "HeroTest2",.....
"dependencies": {
"LibTest1": "*","tslib": "^2.0.0"
},.....
}
我要在HeroTest2中将LibTest1导出的模块导入为
import {someModuleFromLibTest1} from 'LibTest1';
构建库并运行应用程序时没有问题。 HeroTest2可以识别LibTest1并构建良好。
在HeroTest2的单元测试中,我添加了LibTest1的模块
import {someModuleFromLibTest1} from 'LibTest1';
.....
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ .... ],imports: [....,someModuleFromLibTest1,...]
})
.compileComponents();
}));
....
运行HeroTest2的单元测试时出现以下错误
Error: Unexpected value 'someModuleFromLibTest1' imported by the module 'DynamicTestModule'. Please add an @NgModule annotation.
任何帮助将不胜感激。
解决方法
尝试删除您的node_modules
文件夹并重新运行npm install
,这可能是升级后节点模块中的某些不一致之处。