typescript - Typescript 3.0 项目参考的 Jest 编译问题
问题描述
我正在开发一个使用 Typescript 3.0 项目参考的大型项目。我们正在使用与本文接受的评论类似的项目结构如何在 TypeScript 3.0 中使用项目引用?. 对于测试框架,我们选择了 Jest,并使用 Jest 的项目功能来分离单元、集成和 linting 测试。
"projects": [
{
"displayName": "integration",
"preset": "ts-jest",
"testEnvironment": "node",
"testMatch": [
"<rootDir>/test/integration/**/*.spec.ts"
],
"setupFilesAfterEnv": [
"<rootDir>/test/jest-setup.ts"
]
},
{
"displayName": "unit",
"preset": "ts-jest",
"testEnvironment": "node",
"testMatch": [
"<rootDir>/test/unit/**/*.spec.ts"
],
"setupFilesAfterEnv": [
"<rootDir>/test/jest-setup.ts"
]
},
{
"displayName": "lint",
"runner": "jest-runner-eslint",
"testEnvironment": "node",
"testMatch": [
"<rootDir>/src/**/*.ts"
]
}
]
因此,使用项目引用;我可以使用tsc --build
. 但是,当使用 Jest 时,我遇到了编译问题,因为 Jest 无法从 src 项目中找到定义文件。正如我所说,这可以使用 typescript 编译器进行编译,并且在 VSCode 中没有 linting 问题。
我试图解决这个问题的一种方法是将定义文件从 src 导入到 jest 设置文件中,即:import '../src/index.d'
. 这仅在清除 Jest 的缓存后第一次运行时解决了该问题。第二次及以后的运行都将因编译问题而失败。
有没有人成功地将 Jest 与 Typescript 的项目引用一起使用?Jest 甚至支持项目引用吗?为什么清除缓存仅在第一次运行时解决此问题,而不是任何其他后续运行?
解决方案
推荐阅读
- c++ - 几次运行后,Vscode 自动格式化代码停止工作
- python - 如何在 os.walk 函数中过滤具有特定路径的文件?
- laravel-5 - Laravel 5,垃圾邮件绕过表单验证
- ios - 如何在可可框架中添加自定义子类
- kotlin - 如何在 Kotlin 中实现具有多个泛型参数的类?
- charts - 无法从模板化子图访问 root($) Chart.yaml 版本
- python - 装饰类中的静态方法以记录 ORM 访问
- odoo - 字段不仅存在于树视图中
- c# - 如何在 Razor Pages 中返回带有对象的不同视图?
- android - Android adb 调试被 APK 签名验证阻止失败