我需要为我的测试启用一些全局变量,因此我设置了一个自定义环境以在 testEnvironment
中使用。我的 jest.config.json
中的选项实现这一目标。
对于我们的项目,我们有一个用于 setupFilesAfterEnv
的 TypeScript 文件。选项,效果很好,但是 testEnvironment
似乎只支持 ES5。有没有办法在这样的选项中使用 TypeScript?
我使用 ES5 语法成功创建了自定义 Jest 环境,但是由于我们要注入(inject)全局变量,我需要 TypeScript 来声明全局命名空间,请参阅:https://stackoverflow.com/a/42304473/4655076 .
{
///...
setupFilesAfterEnv: ['<rootDir>/test/setup.ts'], // This works with ts
testEnvironment: '<rootDir>/test/customJestEnvironment.ts', // This doesn't work with ts
}
最佳答案
您可能会发现这很有帮助:Configure Jest global tests setup with .ts file (TypeScript)
但基本上你只能将编译好的 JS 文件作为环境传入。
你可以按照那篇文章的建议去做。但这对我来说并没有开箱即用。所以我手动编译我的环境。
IE。
在 package.json
"test": "tsc --lib es6 --target es6 --skipLibCheck -m commonjs --esModuleInterop true path/to/env.ts &&
jest --config=jest.config.js",
在 jest.config.js 中
{
testEnvironment: '<rootDir>/path/to/env.js', // Note JS extension.
}
关于node.js - 如何在 Jest 的自定义测试环境文件中使用 TypeScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58163210/