-
Notifications
You must be signed in to change notification settings - Fork 369
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
使用 esbuild-jest 的问题 #503
Comments
esbuild-jest还有一个问题,如果使用jest.mock,则测试文件无法使用Typescript类型来标记字段。目前似乎没有什么好的解决办法 |
问题一添加 sourcemap 配置可以以解决,性能上影响非常小(plugin-express 差距在 1s 以内);我修改下。
|
这个是我手误,应该可以提前发现这个错误的。 |
这种错误不应该由人去预防,比较担心的是使用 esbuild-jest 导致我们源码中的错误没有暴露出来。 这个 issue 暂时先不关闭,后续如果有关于 esbuild-jest 的问题,可以记录到这个 issue 下。 |
这个 issue 先 close 咯,esbuild-jest 目前的维护频率很低,后续我们应该会考虑迁移到 @swc/jest 或 vitest 上 |
版本信息
问题详情
现在使用 esbuild-jest 会显著加快我们 CI 的运行速度,但是使用下来有下面两个问题。
问题一
esbuild-jest 导致 jest 统计的覆盖率不准确。
以 plugin-express 为例, 当使用 esbuild-jest 时;显示覆盖率如下:
可以看到报告中 plugin.ts 45、120 行是未执行的,但看相关代码可以发现 45,120 行其实是空行。
使用 ts-jest 时,显示覆盖率如下;这里展示的 Uncovered Line 是准确的。
从上面可以看出 esbuild-jest 统计的测试覆盖率偏差还是挺大的,所以图片中 60% 的覆盖率是不准确的。因为开了 codecov 校验;现在不好跑通 CI;codecov 的报告也无指导意义。
问题二
esbuild-jest 与 ts 默认行为有些不一致
plugin-testing 中有一个测试用例( index.test.ts ) 如下:
因为这里 src 中的代码没有默认导出,tsconfig 中也未做配置;所以可以看到 vscode 中是有提示报错。但使用 esbuild-jest 的时候是可以跑通测试用例的;使用 ts-jest 才会报错。
现在 esbuild-jest 最主要的问题是会影响合码。目前 CI 的短板在集测,这里建议暂时先使用 ts-jest 跑单测;对 CI 整体速度影响应该不大。
问题复现
modern.js 仓库就可以复现
The text was updated successfully, but these errors were encountered: