升级到Angular 10后,无法在单元测试中找到库别名

问题描述

升级到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,这可能是升级后节点模块中的某些不一致之处。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...