【问题标题】:Fails to find library aliases in unit tests after upgrading to Angular 10升级到 Angular 10 后无法在单元测试中找到库别名
【发布时间】:2020-10-07 16:26:48
【问题描述】:

升级到 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.

任何帮助将不胜感激。

【问题讨论】:

    标签: angular unit-testing libraries angular10


    【解决方案1】:

    尝试删除您的node_modules 文件夹并重新运行npm install,可能是升级后节点模块中的一些不一致。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-27
      • 1970-01-01
      • 2019-12-02
      • 1970-01-01
      • 1970-01-01
      • 2020-10-06
      相关资源
      最近更新 更多