ホームページ >ウェブフロントエンド >jsチュートリアル >tRPC ソース コードでの Istanbul の使用法

tRPC ソース コードでの Istanbul の使用法

Susan Sarandon
Susan Sarandonオリジナル
2024-11-01 17:40:02885ブラウズ

この記事では、tRPC ソース コードにおける Istanbul の使用法を分析します。このコメントを見つけました — イスタンブールは if を無視します。これは、tRPC が JavaScript のテスト カバレッジを簡素化するツールである Istanbul.js を使用していることを示唆しています。

これには、tRPC リポジトリが @vitest/coverage-istanbul を使用していることを理解するのに時間がかかりました。最初は、パッケージ/クライアントで定義されたテストに関連するスクリプトがあるかどうかを確認していましたが、何もありませんでした。

コードベース全体で istanbul を検索した後、つまり vitest.config.ts に Istanbul という単語が表示されたとき、テスト スクリプトはルート レベルの 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 は、Rust で書かれた、JavaScript と TypeScript に最適化されたインクリメンタル バンドラーおよびビルド システムです。

ターボコード生成テスト:

codegen-tests はturbo.json で定義されたコマンドで、これを実行すると、パッケージで定義された codegen-tests スクリプトが実行されます。これはモノリポジトリのセットアップです。

パッケージ内の codegen-scripts:

- client/package.json

- next/package.json

- 反応クエリ/package.json

- サーバー/パッケージ.json

conc -c

conc は、concurrently の短い別名です。同時にチェックアウトします。

以下は concurrently の使用例です。

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。