Maison  >  Article  >  interface Web  >  Utilisation d'Istanbul dans le code source du tRPC

Utilisation d'Istanbul dans le code source du tRPC

Susan Sarandon
Susan Sarandonoriginal
2024-11-01 17:40:02805parcourir

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

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/**',
 ],
},

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

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"

tRPC utilise la commande ci-dessous :

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

À 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!

Déclaration:
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