首頁  >  文章  >  web前端  >  tRPC 原始碼中的 Istanbul 使用

tRPC 原始碼中的 Istanbul 使用

Susan Sarandon
Susan Sarandon原創
2024-11-01 17:40:02805瀏覽

在本文中,我們分析了 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