Dalam artikel ini, kami menganalisis penggunaan Istanbul dalam kod sumber tRPC. Saya jumpa komen ini — istanbul abaikan jika. Ini membayangkan bahawa tRPC menggunakan Istanbul.js, alat yang menjadikan liputan ujian JavaScript mudah.
Yang ini mengambil sedikit masa untuk saya mengetahui bahawa repositori tRPC menggunakan @vitest/coverage-istanbul, pada mulanya saya ingin melihat sama ada terdapat sebarang skrip yang berkaitan dengan ujian yang ditakrifkan dalam pakej/klien tetapi tiada.
Selepas mencari istanbul merentasi pangkalan kod, ketika itulah saya melihat perkataan Istanbul dalam vitest.config.ts skrip ujian ditakrifkan dalam package.json peringkat akar.
"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",
Di bawah ialah objek liputan yang dipilih daripada 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 menyokong penyedia lain juga, ia adalah 'v8'. Secara lalai, pembekal ditetapkan kepada v8.
Mari apa yang berlaku apabila skrip ujian dijalankan:
"test": "turbo codegen-tests && conc -c \"green,blue\" \"vitest run\" \"pnpm -F tests test-run:tsc\"",
tRPC menggunakan Turbo. Turbo ialah sistem pengikat dan binaan tambahan yang dioptimumkan untuk JavaScript dan TypeScript, ditulis dalam Rust.
codegen-tests ialah perintah yang ditakrifkan dalam turbo.json dan apabila anda menjalankan ini, ia melaksanakan skrip ujian codegen yang ditakrifkan dalam pakej. Ini ialah persediaan monorepo.
skrip codegen dalam pakej:
- client/package.json
- next/package.json
- react-query/package.json
- pelayan/pakej.json
conc ialah alias pendek untuk serentak. Daftar keluar serentak.
Di bawah ialah contoh penggunaan serentak.
concurrently "command1 arg" "command2 arg" (or) conc "command1 arg" "command2 arg"
tRPC menggunakan arahan di bawah ini:
conc -c \"green,blue\" \"vitest run\" \"pnpm -F tests test-run:tsc\"
Di Thinkthroo, kami mengkaji projek sumber terbuka yang besar dan menyediakan panduan seni bina. Kami telah membangunkan Komponen resubale, dibina dengan tailwind, yang boleh anda gunakan dalam projek anda. Kami menawarkan perkhidmatan pembangunan Next.js, React dan Node.
Tempah mesyuarat dengan kami untuk membincangkan projek anda.
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
Atas ialah kandungan terperinci Penggunaan Istanbul dalam kod sumber tRPC. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!