Heim >Web-Frontend >js-Tutorial >Istanbul-Verwendung im tRPC-Quellcode

Istanbul-Verwendung im tRPC-Quellcode

Susan Sarandon
Susan SarandonOriginal
2024-11-01 17:40:02883Durchsuche

In diesem Artikel analysieren wir die Verwendung von Istanbul im tRPC-Quellcode. Ich habe diesen Kommentar gefunden – Istanbul ignorieren wenn. Dies deutet darauf hin, dass tRPC Istanbul.js verwendet, ein Tool, das die JavaScript-Testabdeckung vereinfacht.

Es hat eine Weile gedauert, bis ich herausgefunden habe, dass das tRPC-Repository @vitest/coverage-istanbul verwendet. Ich habe zunächst nach Skripten gesucht, die sich auf Tests beziehen, die in Paketen/Clients definiert sind, aber es gab keine.

Nachdem ich in der gesamten Codebasis nach „Istanbul“ gesucht hatte, sah ich, dass das Wort „Istanbul“ in vitest.config.ts Testskripte in der package.json der Stammebene definiert ist.

"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",

Unten ist das Abdeckungsobjekt aufgeführt, das aus vitest.config.ts ausgewählt wurde:

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 unterstützt auch einen anderen Anbieter, nämlich „v8“. Standardmäßig ist der Anbieter auf v8 eingestellt.

Sehen wir uns an, was passiert, wenn das Testskript ausgeführt wird:

Testskript:

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

tRPC verwendet Turbo. Turbo ist ein inkrementelles Bundler- und Build-System, das für JavaScript und TypeScript optimiert und in Rust geschrieben ist.

Turbo-Codegen-Tests:

codegen-tests ist ein in turbo.json definierter Befehl. Wenn Sie ihn ausführen, werden in den Paketen definierte codegen-tests-Skripte ausgeführt. Dies ist ein Monorepo-Setup.

Codegen-Skripte in Paketen:

- client/package.json

- next/package.json

- React-Query/Package.json

- server/package.json

conc -c

conc ist ein Kurzalias für concurrently. Gleichzeitig zur Kasse gehen.

Unten finden Sie ein Beispiel für die gleichzeitige Verwendung.

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

tRPC verwendet den folgenden Befehl:

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

Über uns:

Bei Thinkthroo studieren wir große Open-Source-Projekte und stellen Architekturführer zur Verfügung. Wir haben mit Rückenwind resubale Komponenten entwickelt, die Sie in Ihrem Projekt nutzen können. Wir bieten Next.js-, React- und Node-Entwicklungsdienste an.

Buchen Sie einen Termin mit uns, um Ihr Projekt zu besprechen.

Istanbul usage in tRPC source code

Istanbul usage in tRPC source code

Referenzen:

  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

Das obige ist der detaillierte Inhalt vonIstanbul-Verwendung im tRPC-Quellcode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn