jest.config.ts:从 Github Actions 运行 jest 时出现“registerer.enabled 不是函数”错误

Posted

技术标签:

【中文标题】jest.config.ts:从 Github Actions 运行 jest 时出现“registerer.enabled 不是函数”错误【英文标题】:jest.config.ts: "registerer.enabled is not a function" error when running jest from Github Actions 【发布时间】:2021-10-27 19:02:01 【问题描述】:

在本地运行 jest 时,它会实例化我的应用并运行测试而没有任何问题。

在 github 操作中运行 jest 时,出现此错误:

Error: Jest: Failed to parse the TypeScript config file /home/runner/work/myproject/myproject/jest.config.ts

TypeError: registerer.enabled is not a function
    at readConfigFileAndSetRootDir (/home/runner/work/myproject/myproject/node_modules/@jest/core/node_modules/jest-config/build/readConfigFileAndSetRootDir.js:118:13)

package.json 脚本条目就是:"test": "jest"

jest.config.ts 文件是:

import tsJestUtils from 'ts-jest/utils'
import tsConf from './tsconfig.json'

const rootDir = __dirname
const  pathsToModuleNameMapper  = tsJestUtils
const 
  compilerOptions:  paths ,
 = tsConf

const config = 
  preset: 'ts-jest',
  testEnvironment: 'node',
  roots: [`$rootDir/src`],
  transform: 
    '^.+\\.tsx?$': 'ts-jest',
  ,
  moduleNameMapper: pathsToModuleNameMapper(paths, 
    prefix: `$rootDir/src`,
  ),


export default config

【问题讨论】:

【参考方案1】:

所以我完全绕过了在我的 jest 配置中使用打字稿,并使用了基于 the docs 的等效 jest.config.js 文件。现在在 Github Actions 中工作,跑步者不会失败! \o/


我仍然不确定问题是什么,但我认为 ts-node 只是没有正确处理配置文件。我觉得实际失败是尝试加载 .ts 配置文件,特别是在尝试调用 registerer.enabled() 时 at this point in the source code。

【讨论】:

以上是关于jest.config.ts:从 Github Actions 运行 jest 时出现“registerer.enabled 不是函数”错误的主要内容,如果未能解决你的问题,请参考以下文章

Github重磅教程!从0到1,边学边实战!

如何使用 github 操作从 Github 中存储库 A 的工作流作业触发存储库 B(下游作业)中的工作流作业

在Windows 系统上构建从github获得的jquery源码

如何从github下载流浪动物代码

django.db.utils.ProgrammingError尝试从github克隆的app上的manage.py makemigrations

如何从github上仓库clone到本地