この記事では、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 は、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 開発サービスを提供します。
プロジェクトについて話し合うためのミーティングを予約してください。
https://github.com/trpc/trpc/blob/next/packages/client/src/links/httpBatchLink.ts#L91C12-L91C30
https://github.com/gotwarlost/istanbul
https://istanbul.js.org/
https://github.com/istanbuljs
https://github.com/trpc/trpc/blob/d603d860a3aeb12bbf6e836abd8c5a30c7b5d7a5/vitest.config.ts#L45
以上がtRPC ソース コードでの Istanbul の使用法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。