Maison  >  Article  >  développement back-end  >  Comment puis-je mesurer la couverture d’un package avec des fichiers de test séparés dans Go ?

Comment puis-je mesurer la couverture d’un package avec des fichiers de test séparés dans Go ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-27 20:18:30754parcourir

 How Can I Measure Coverage for a Package with Separated Test Files in Go?

Test de la couverture des packages avec des fichiers de test séparés

Lors de l'organisation d'une base de code avec de nombreux fichiers de test, il peut être avantageux de séparer les tests des tests réels. base de code pour plus de clarté et le respect des meilleures pratiques. Dans de tels scénarios, les fichiers de test peuvent résider dans un package différent de celui du code testé.

Un défi potentiel survient lors de l'obtention de statistiques de couverture pour le package réellement testé. Par défaut, les tests ne couvrent que le package dans lequel ils résident. Ce problème provient de l'approche de Go, qui dicte que le code et les fichiers de test doivent coexister au sein du même package.

Solution

Heureusement, Go propose une solution à ce dilemme :

go test -cover -coverpkg "api_client" "api_client_tests"

En spécifiant l'indicateur "-coverpkg", vous pouvez demander à Go de mesurer la couverture pour le package spécifié ("api_client" dans ce cas ), lors de l'exécution de tests à partir d'un package distinct ("api_client_tests"). Cela vous permet de vérifier avec précision la couverture de votre package client API sans avoir besoin de le consolider avec les fichiers de test.

Approche alternative

Bien que l'utilisation de packages de test séparés puisse offrent des avantages en termes d'organisation, il convient de noter que cette approche s'écarte de la manière conventionnelle Go d'organiser le code et les tests. Si les tests en boîte noire sont votre objectif principal, où seules les API des packages publics sont accessibles aux tests, une méthode alternative est disponible :

  1. Conservez les fichiers de test dans le même package que le code.
  2. Utilisez le modificateur de visibilité « interne » pour restreindre l'accès aux méthodes et variables privées du package, en garantissant que seule l'API publique du package est exposée aux tests.

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