我尝试使用 Jest 运行一些 TypeScript 测试,但速度很慢,需要 10 秒才能运行以下测试:
import "jest"
test("good", () => {
expect(2).toBe(2)
})
test("bad", () => {
expect(2).toBe(3)
})
Run Code Online (Sandbox Code Playgroud)
我也在 --watch 模式下运行它,并且当文件更改时它运行了相同的 10 秒。
我在一个大型项目中使用 TypeScript。虽然示例文件中没有导入任何模块,但 tsconfig.json 具有整个项目的路径。
我如何确定 Jest 运行如此缓慢的原因,以便找出加快速度的方法?
如果我创建一个具有相同测试的 .js 文件,并删除导入行,速度会很快。这可能表明与 TypeScript 方面有关。
edA*_*a-y 22
isolatedModules: true
通过在配置中使用,我获得了显着的加速。
我的配置现在看起来像这样:
/** @type {import('@ts-jest/dist/types').InitialOptionsTsJest} */
module.exports = {
preset: "ts-jest",
testEnvironment: "node",
globals: {
"ts-jest": {
isolatedModules: true,
},
},
transform: {
"^.+\\.jsx?$": "babel-jest",
},
moduleNameMapper: {
// ...removed...
},
moduleDirectories: ["js", ".", "node_modules"],
}
Run Code Online (Sandbox Code Playgroud)
设置isolatedModules: true
还加快了我的测试速度(它似乎禁用了打字稿编译器类型检查)。
由于不推荐使用ts-jest
下面的定义配置globals
,因此最好使用以下命令进行设置transform
:
transform: {
'^.+\\.ts?$': ['ts-jest', { isolatedModules: true }],
},
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9835 次 |
最近记录: |