首页 >web前端 >js教程 >tRPC 源代码中的 Istanbul 使用

tRPC 源代码中的 Istanbul 使用

Susan Sarandon
Susan Sarandon原创
2024-11-01 17:40:02885浏览

在本文中,我们分析了 tRPC 源代码中的 Istanbul 使用情况。我发现了这个评论——伊斯坦布尔忽略如果。这暗示 tRPC 使用 Istanbul.js,这是一个使 JavaScript 测试覆盖率变得简单的工具。

这个花了我一段时间才弄清楚 tRPC 存储库使用 @vitest/coverage-istanbul,我最初想看看是否有任何与包/客户端中定义的测试相关的脚本,但没有。

在代码库中搜索 istanbul 后,我在 vitest.config 中看到了 Istanbul 一词。ts 测试脚本是在根级别的 package.json 中定义的。

"test": "turbo codegen-tests && conc -c \"green,blue\" \"vitest run\" \"pnpm -F tests test-run:tsc\"",
"test-ci": "turbo codegen-tests && conc \"CI=true vitest run - coverage\" \"pnpm -F tests test-run:tsc\"",
"test-watch": "vitest",

下面是从 vitest.config.ts 中选取的覆盖范围对象:

coverage: {
 provider: 'istanbul',
 include: ['**/src/**'],
 exclude: [
 '**/www/**',
 '**/examples/**',
 // skip codecov for experimental features
 // FIXME: delete me once they're stable
 '**/next/src/app-dir/**',
 '**/server/src/adapters/next-app-dir/**',
 ],
},

Vitest 还支持另一个提供商,它是“v8”。默认情况下,提供程序设置为 v8。

让我们看看测试脚本运行时会发生什么:

测试脚本:

"test": "turbo codegen-tests && conc -c \"green,blue\" \"vitest run\" \"pnpm -F tests test-run:tsc\"",

tRPC 使用 Turbo。 Turbo 是一个增量捆绑器和构建系统,针对 JavaScript 和 TypeScript 进行了优化,用 Rust 编写。

涡轮代码生成测试:

codegen-tests 是在turbo.json 中定义的命令,当您运行它时,它会执行包中定义的codegen-tests 脚本。这是一个 monorepo 设置。

包中的codegen脚本:

- client/package.json

- next/package.json

-react-query/package.json

- 服务器/package.json

conc -c

conc 是并发的简称。同时结账。

下面是并发的用法示例。

concurrently "command1 arg" "command2 arg"
(or)
conc "command1 arg" "command2 arg"

tRPC 使用以下命令:

conc -c \"green,blue\" \"vitest run\" \"pnpm -F tests test-run:tsc\"

关于我们:

在 Thinkthroo,我们研究大型开源项目并提供架构指南。我们开发了使用 tailwind 构建的 resubale 组件,您可以在您的项目中使用它们。我们提供 Next.js、React 和 Node 开发服务。

与我们预约会面讨论您的项目。

Istanbul usage in tRPC source code

Istanbul usage in tRPC source code

参考资料:

  1. https://github.com/trpc/trpc/blob/next/packages/client/src/links/httpBatchLink.ts#L91C12-L91C30

  2. https://github.com/gotwarlost/istanbul

  3. https://istanbul.js.org/

  4. https://github.com/istanbuljs

  5. https://github.com/trpc/trpc/blob/d603d860a3aeb12bbf6e836abd8c5a30c7b5d7a5/vitest.config.ts#L45

以上是tRPC 源代码中的 Istanbul 使用的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn