Maison > interface Web > js tutoriel > le corps du texte

Utilisation d'Istanbul dans le code source du tRPC

Susan Sarandon
Libérer: 2024-11-01 17:40:02
original
856 Les gens l'ont consulté

Dans cet article, nous analysons l'utilisation d'Istanbul dans le code source du tRPC. J'ai trouvé ce commentaire - Istanbul ignore si. Cela laisse entendre que tRPC utilise Istanbul.js, un outil qui simplifie la couverture des tests JavaScript.

Celui-ci m'a mis du temps à comprendre que le référentiel tRPC utilise @vitest/coverage-istanbul, je cherchais au départ s'il y avait des scripts liés aux tests définis dans les packages/clients mais il n'y en avait aucun.

Après avoir recherché istanbul dans la base de code, c'est à ce moment-là que j'ai vu le mot Istanbul dans vitest.config.ts, les scripts de test sont définis dans le package.json du niveau racine.

"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",
Copier après la connexion

Ci-dessous se trouve l'objet de couverture sélectionné dans 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/**',
 ],
},
Copier après la connexion

Vitest prend également en charge un autre fournisseur, il s'agit de « v8 ». Par défaut, le fournisseur est défini sur v8.

Voyons ce qui se passe lorsque le script de test est exécuté :

script de test :

"test": "turbo codegen-tests && conc -c \"green,blue\" \"vitest run\" \"pnpm -F tests test-run:tsc\"",
Copier après la connexion

tRPC utilise Turbo. Turbo est un bundler incrémentiel et un système de construction optimisé pour JavaScript et TypeScript, écrit en Rust.

tests de codegen turbo :

codegen-tests est une commande définie dans turbo.json et lorsque vous l'exécutez, elle exécute les scripts codegen-tests définis dans les packages. Il s'agit d'une configuration monorepo.

scripts codegen dans les packages :

-client/package.json

- suivant/package.json

- réagir-query/package.json

- serveur/package.json

conc -c

conc est un alias court pour simultanément. Paiement simultané.

Vous trouverez ci-dessous un exemple d'utilisation de simultanément.

concurrently "command1 arg" "command2 arg"
(or)
conc "command1 arg" "command2 arg"
Copier après la connexion

tRPC utilise la commande ci-dessous :

conc -c \"green,blue\" \"vitest run\" \"pnpm -F tests test-run:tsc\"
Copier après la connexion

À propos de nous :

Chez Thinkthroo, nous étudions les grands projets open source et fournissons des guides architecturaux. Nous avons développé des composants resubale, construits avec le vent arrière, que vous pouvez utiliser dans votre projet. Nous proposons des services de développement Next.js, React et Node.

Prenez rendez-vous avec nous pour discuter de votre projet.

Istanbul usage in tRPC source code

Istanbul usage in tRPC source code

Références :

  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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal