【问题标题】:Error running node test with jest in docker container在 docker 容器中使用 jest 运行节点测试时出错
【发布时间】:2020-12-26 19:35:45
【问题描述】:

我正在尝试使用 jest 在 docker 容器中的节点应用程序上运行一系列单元测试。

我正在尝试使用 npm test 命令运行这些测试,并且在脚本部分的 package.json 文件中,我具有以下配置:

"scripts": {
    "test": "jest --watchAll --verbose"
  },

当我在 docker 之外的本地计算机上运行此命令时,测试运行成功,但是,当我尝试在 docker 中运行相同的命令时,我收到一个奇怪的错误:

TypeError: (0 , (_jestValidate || _load_jestValidate(...)).validateCLIOptions) is not a function
    at buildArgv (/usr/src/app/node_modules/jest-cli/build/cli/index.js:233:66)
    at Object.<anonymous> (/usr/src/app/node_modules/jest-cli/build/cli/index.js:11:20)
    at Generator.next (<anonymous>)
    at step (/usr/src/app/node_modules/jest-cli/build/cli/index.js:158:191)
    at /usr/src/app/node_modules/jest-cli/build/cli/index.js:158:437
    at new Promise (<anonymous>)
    at Object.<anonymous> (/usr/src/app/node_modules/jest-cli/build/cli/index.js:158:99)
    at Object.run (/usr/src/app/node_modules/jest-cli/build/cli/index.js:30:17)
    at Object.<anonymous> (/usr/src/app/node_modules/jest-cli/bin/jest.js:16:27)
    at Module._compile (node:internal/modules/cjs/loader:1102:14)
npm ERR! code 1
npm ERR! path /usr/src/app
npm ERR! command failed
npm ERR! command sh -c jest --watchAll --verbose

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2020-12-26T10_49_00_358Z-debug.log

我尝试在 docker-compose.yaml 文件和 dockerfile 中使用RUN npm test

运行这些测试

我在开发依赖项部分的 package.json 中配置了 jestjest-cli

  "devDependencies": {
    "jest": "22.4.4",
    "jest-cli": "22.4.4",
    "supertest": "^3.0.0"
  }

我错过了什么吗?

【问题讨论】:

    标签: node.js docker docker-compose jestjs dockerfile


    【解决方案1】:

    在你的package.json中添加test-ci,让它在CI中运行:

    ...
    scripts": {
        "test": "jest --watchAll --verbose",
        "test-ci": "jest --ci"
      },
    ...
    

    jest --watchAll需要一些特殊的进程来为我们提供很好的测试,需要的是看文件,终端控制等等。但是,docker 图像通常没有这样的特性来减小它们的图像大小。详细的看jest的代码,不过有点累。为什么不追究? :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-14
      • 1970-01-01
      • 2020-04-22
      • 1970-01-01
      • 2015-07-04
      • 1970-01-01
      • 1970-01-01
      • 2022-08-23
      相关资源
      最近更新 更多