小编Hos*_*udi的帖子

当我使用 Bazel Test 时,Nest 无法解析 RootTestModule 上下文中的依赖关系

我需要在挡板中运行我的测试。我该如何解决这个神秘的问题?

我有一个 nestjs 项目,其中包含多个应用程序和库。当我运行测试时yarn jest --config ./jest.config.json libs/lib1,它运行良好。但是,当我使用 bezel 运行时,bazel test //libs/lib1/...它给了我一个错误“Nest 无法解析依赖项...请确保索引处的参数依赖项...在 RootTestModule 上下文中可用。”。

回购协议

https://github.com/smhmayboudi/bazel_jest_nestjs
Run Code Online (Sandbox Code Playgroud)

我发现 jest.config.json 中的映射顺序很重要。这个效果很好(显示测试+覆盖),但依赖性问题

  "moduleNameMapper": {
    "@melo/lib1": "<rootDir>/libs/lib1/src",
    "@melo/lib1/(.*)": "<rootDir>/libs/lib1/src/$1",
  },
Run Code Online (Sandbox Code Playgroud)

这个有效(仅显示传递消息而没有实际测试结果和覆盖率!?)

  "moduleNameMapper": {
    "@melo/lib1/(.*)": "<rootDir>/libs/lib1/src/$1",
    "@melo/lib1": "<rootDir>/libs/lib1/src",
  },
Run Code Online (Sandbox Code Playgroud)

玩笑配置

{
  "coverageReporters": ["lcov", "text-summary"],
  "moduleNameMapper": {
    "@melo/libs1": "<rootDir>/libs/libs1/src",
    "@melo/libs1/(.*)": "<rootDir>/libs/libs1/src/$1",
  },
  "modulePathIgnorePatterns": ["/bazel-out/", "/node_modules/"],
  "preset": "ts-jest",
  "testEnvironment": "node"
}
Run Code Online (Sandbox Code Playgroud)

巴泽尔配置

ts_library(
    name = "lib1_test_ts_library",
    srcs = glob(["*spec.ts"]),
    runtime = "nodejs",
    deps = [
        ":lib1_ts_library",
        "@npm//@nestjs/common",
        "@npm//@nestjs/testing",
        "@npm//@types/jest",
        "@npm//rxjs",
        "@npm//ts-jest",
    ], …
Run Code Online (Sandbox Code Playgroud)

jestjs bazel ts-jest bazel-rules-nodejs

8
推荐指数
2
解决办法
4222
查看次数

标签 统计

bazel ×1

bazel-rules-nodejs ×1

jestjs ×1

ts-jest ×1