3

我正在尝试为 monorepo 应用程序运行 e2e 测试,该应用程序还利用 monorepo 中的多个库,整个应用程序中的所有导入都使用“@app”导入解决,例如import { ConfigService } from "@app/config"

但是,当尝试通过以下命令运行 e2e 测试时:

"test:public": "jest --config ./apps/public-microservice/test/jest-e2e.json",

开玩笑抛出:

 Cannot find module '@app/config' from '../src/public-microservice.module.ts'

从 @jmcdo29 查看了这个 demo-repo,找不到任何与我的配置不同的东西。

我注意到2019 年在这里通过 jest 生成了错误配置的问题,但它早就解决了,我在 package.json 中对 jest 的配置确实提到:

    "moduleNameMapper": {
      "@app/config/(.*)": "<rootDir>/libs/config/src/$1",
      "@app/config": "<rootDir>/libs/config/src",

而 package.json 脚本命令的本地目标文件仅包含:

{
  "moduleFileExtensions": ["js", "json", "ts"],
  "rootDir": ".",
  "testEnvironment": "node",
  "testRegex": ".e2e-spec.ts$",
  "transform": {
    "^.+\\.(t|j)s$": "ts-jest"
  }
}

我的命令或配置中是否缺少某些内容?

我需要指定什么来告诉 jest 扩展 package.json 中可用的 jest 配置吗?

感谢您对投资的任何帮助,谢谢。

4

1 回答 1

1

我在我的 jest e2e 套件配置中添加了“moduleNameMapper”键,并更新了“../”相对路径以匹配我的库所在的位置,在我的特定场景中,它看起来像这样:

  "moduleNameMapper": {
    "@app/config/(.*)": "<rootDir>../../../libs/config/src/$1",
    "@app/config": "<rootDir>../../../libs/config/src",
  },
于 2021-08-02T16:02:47.750 回答