基础安装jestyarnaddjest-Dconfigurationpackage.json{"scripts":{"test":"jest"},"devDependencies":{"jest":"^27.5.1"}}测试代码//sum.jsmodule.exports=functionsum(a,b){returna+b;};//sum.spec.jsconstsum=require("./sum");test("sum",()=>{expect(总和(1,1)).toBe(2);});测试yarntest没有问题。配置支持esmodule,无需任何配置。如果直接改成esmodule的导入导出,就会出现这样的错误。官方文档只需要在package.json稍微配置一下就可以支持esmodule{"license":"ISC","type":"module","scripts":{"test":"NODE_OPTIONS=--experimental-vm-modulesjest"},"devDependencies":{"jest":"^27.5.1"}}让测试成功,但是会有提示说VMModules是一个实验性的特性配置支持ts除了jest,需要安装三个包@types/jestts-jesttypescriptyarnaddts-jest@types/jesttypescript-D配置文件jest.config.jsmodule.exports={preset:"ts-jest",testEnvironment:“节点”,};配置tsco如果nfig.json没有esModuleInterop属性,会有一些提示,也可以运行。只需在包中写上“test”:“jest”{“compilerOptions”:{“esModuleInterop”:true}}测试代码//sum.tsexportfunctionsum(a,b){returna+b;}//sum.spec.tsimport{sum}from"./sum";describe("sum",()=>{it("sum:1+1=2",()=>{expect(sum(1,1)).toBe(2);});});运行测试纱线测试完美
