javascript - 如何在 Global Jest 设置中查找别名?

标签 javascript typescript testing jestjs ts-jest

我只想在所有测试用例之前运行一些东西。因此,我创建了一个全局函数并在 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>/' })
};

当我在每次测试之前运行 testSetup 时,它可以正常运行别名,但是 globalSetup 不会发生这种情况。

知道我能做什么吗?

最佳答案

我设法通过在我的 globalSetup 文件顶部包含 tsconfig-paths/register 来完成这项工作:

// myGlobalSetupFile.ts

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

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

您必须确保在您的项目中安装了 tsconfig-paths

关于javascript - 如何在 Global Jest 设置中查找别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65475250/

相关文章:

java - 快速获取屏幕像素信息

php - 使用 PHP 动态生成 JavaScript

javascript - 如果单击按钮,如何重置计数器

javascript - 在 Angular 6 上将 html 模板包含到另一个模板中

testing - 当集成测试文件和单元测试文件都存在时,grails 没有找到给定包含的测试

go - 如何测试表格提交

javascript - 具有固定侧边栏布局的 NuxtJs nuxt-link 滚动行为

javascript - 在 React 组件之间调用函数

javascript - 嵌套 ng-bootstrap 选项卡(Angular 2)

angular - 不满足条件时取消 Observable 中链