Javascript 如何在全局Jest设置中查找别名?

Javascript 如何在全局Jest设置中查找别名?,javascript,typescript,testing,jestjs,ts-jest,Javascript,Typescript,Testing,Jestjs,Ts Jest,我只想在所有测试用例之前运行一些东西一次。因此,我创建了一个全局函数,并在jest配置中指定了globalSetup字段: globalSetup: path.resolve(srcPath, 'TestUtils', 'globalSetup.ts'), 然而,在globalSetup中,我使用了一些别名@,Jest抱怨它找不到它们 分类别名后,如何运行globalSetup 我的Jest配置如下: module.exports = { rootDir: rootPath, cove

我只想在所有测试用例之前运行一些东西一次。因此,我创建了一个全局函数,并在jest配置中指定了globalSetup字段:

globalSetup: path.resolve(srcPath, 'TestUtils', 'globalSetup.ts'),
然而,在globalSetup中,我使用了一些别名@,Jest抱怨它找不到它们

分类别名后,如何运行globalSetup

我的Jest配置如下:

module.exports = {
  rootDir: rootPath,
  coveragePathIgnorePatterns: ['/node_modules/'],
  preset: 'ts-jest',
  setupFiles: [path.resolve(__dirname, 'env.testing.ts')],
  setupFilesAfterEnv: [path.resolve(srcPath, 'TestUtils', 'testSetup.ts')],
  globalSetup: path.resolve(srcPath, 'TestUtils', 'globalSetup.ts'),
  globals: {},
  testEnvironment: 'node',
  moduleFileExtensions: ['js', 'ts', 'json'],
  moduleNameMapper: pathsToModuleNameMapper(compilerOptions.paths, { prefix: '<rootDir>/' })
};
module.exports={
rootDir:rootPath,
coveragePathIgnorePatterns:['/node_modules/'],
预设:“ts笑话”,
setupFiles:[path.resolve(uu dirname,'env.testing.ts'),
setupfileafterenv:[path.resolve(srcPath,'TestUtils','testSetup.ts'),
globalSetup:path.resolve(srcPath,'TestUtils','globalSetup.ts'),
全局:{},
测试环境:“节点”,
moduleFileExtensions:['js','ts','json'],
moduleNameMapper:pathsToModuleNameMapper(compilerOptions.path,{前缀:'/'})
};
当我在每次测试之前运行testSetup时,它会正常运行别名,但是globalSetup不会发生这种情况


有什么线索我能做什么吗?

不幸的是,根据对这个问题的评论,我发现没有解决办法:

总结是globalSetup在Jest生态系统之外运行,因此它无法识别别名等

例如,如果您的npm run test命令如下所示,则有几种解决方法:

"test": "jest --config config/jest.config.js --detectOpenHandles --forceExit"
然后,您可以执行以下操作:

"test": "node whateverBeforeJest.js && jest --config config/jest.config.js --detectOpenHandles --forceExit"

不幸的是,根据对该问题的评论,我发现没有解决方案:

总结是globalSetup在Jest生态系统之外运行,因此它无法识别别名等

例如,如果您的npm run test命令如下所示,则有几种解决方法:

"test": "jest --config config/jest.config.js --detectOpenHandles --forceExit"
然后,您可以执行以下操作:

"test": "node whateverBeforeJest.js && jest --config config/jest.config.js --detectOpenHandles --forceExit"

我通过将
tsconfig path/register
包含在globalSetup文件的顶部来完成这项工作:

// myGlobalSetupFile.ts

import 'tsconfig-paths/register';
import { Thing } from './place-with-aliases';

export default async () => {
  await Thing.doGlobalSetup();
}

您必须确保在项目中安装了
tsconfig路径

我通过将
tsconfig路径/register
包含在全局设置文件的顶部来完成这项工作:

// myGlobalSetupFile.ts

import 'tsconfig-paths/register';
import { Thing } from './place-with-aliases';

export default async () => {
  await Thing.doGlobalSetup();
}
您必须确保在项目中安装了
t配置路径

请给出一个包含相关代码和错误消息的示例。请给出一个包含相关代码和错误消息的示例。