


Comment combiner les résultats de couverture de code de plusieurs packages Go??
Dec 24, 2024 am 11:44 AMComment consolider les résultats de couverture de code pour plusieurs packages dans Go
Lorsque vous testez plusieurs packages dans une bibliothèque Go, il peut être avantageux d'obtenir une vue complète de la couverture du code. Par défaut, l'utilisation de l'indicateur -cover avec le test go fournit des informations de couverture pour des packages individuels.
Pour regrouper les données de couverture sur tous les packages, vous pouvez utiliser l'une des deux approches suivantes?:
Utiliser -coverpkg dans Go 1.10 et versions ultérieures?:
Dans Go 1.10 et versions ultérieures, l'indicateur -coverpkg vous permet de spécifier un liste de cibles de couverture séparées par des virgules. Pour couvrir toutes les dépendances du package de test, utilisez?:
go test -v -coverpkg=./... -coverprofile=profile.cov ./... go tool cover -func profile.cov
Utilisation d'un script Bash dans les versions antérieures de Go?:
Pour les versions Go antérieures à 1.10, pensez à utiliser un script Bash pour collecter et consolider les données de couverture?:
#!/bin/bash set -e echo 'mode: count' > profile.cov for dir in $(find . -maxdepth 10 -not -path './.git*' -not -path '*/_*' -type d); do if ls $dir/*.go &> /dev/null; then go test -short -covermode=count -coverprofile=$dir/profile.tmp $dir if [ -f $dir/profile.tmp ] then cat $dir/profile.tmp | tail -n +2 >> profile.cov rm $dir/profile.tmp fi fi done go tool cover -func profile.cov
Ce script parcourt les répertoires contenant des fichiers Go, en exécutant tests avec couverture activée et ajout des résultats à un fichier de profil consolidé (profile.cov). Vous pouvez ensuite utiliser go tool cover pour générer un résumé de la couverture globale du code.
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Dans le langage GO, l'appel d'une méthode de structure nécessite d'abord de définir la structure et la méthode qui lie le récepteur et l'accès à l'aide d'un numéro de point. Après avoir défini le rectangle de structure, la méthode peut être déclarée via le récepteur de valeur ou le récepteur de pointeur; 1. Utilisez le récepteur de valeur tel que Func (Rrectangle) Area () Int et appelez directement-le via rect.area (); 2. Si vous avez besoin de modifier la structure, utilisez le récepteur de pointeur tel que SetWidth (R * rectangle) de Func (R * R * 3. Lors de l'intégration de la structure, la méthode de structure intégrée sera améliorée et peut être appelée directement par la structure extérieure; 4. GO n'a pas besoin de forcer l'utilisation de Getter / Setter,

Dans GO, une interface est un type qui définit le comportement sans spécifier l'implémentation. Une interface se compose de signatures de méthode, et tout type qui implémente ces méthodes satisfait automatiquement l'interface. Par exemple, si vous définissez une interface de haut-parleur contenant la méthode Speak (), tous les types qui implémentent la méthode peuvent être considérés comme haut-parleur. Les interfaces conviennent à la rédaction de fonctions communes, aux détails de l'implémentation abstrait et à l'utilisation d'objets simulés dans les tests. La définition d'une interface utilise le mot-clé d'interface et répertorie les signatures de la méthode, sans déclarer explicitement le type pour implémenter l'interface. Les cas d'utilisation courants incluent les journaux, le formatage, les abstractions de différentes bases de données ou services et des systèmes de notification. Par exemple, les types de chiens et de robots peuvent implémenter des méthodes Speak et les transmettre à la même Anno

TointegrategolangServices withexistingpythoninfrastructure, userestapisorgrpcForInter-Servicecommunication, permettant à la perfection

Le package de temps de Go fournit des fonctions pour le temps de traitement et la durée, y compris l'obtention de l'heure actuelle, la date de mise en forme, le calcul de la différence de temps, le fuseau horaire de traitement, la planification et les opérations de sommeil. Pour obtenir l'heure actuelle, utilisez le temps.now () pour obtenir la structure du temps, et vous pouvez extraire des informations de temps spécifiques via l'année (), le mois (), le jour () et d'autres méthodes; Utilisez le format ("2006-01-0215: 04: 05") pour formater la cha?ne de temps; Lors du calcul du décalage horaire, utilisez sub () ou puisque () pour obtenir l'objet de durée, puis convertissez-le en unité correspondante en secondes (), procès-verbal () et heures ();

Ingo, ifstatementSExECUTECODEBasedOnConditions.1.BasicStructureRunSablockIfaconditionIstristrue, par exemple, ifx> 10 {...}. 2.Elseclausehan dlesfalsEconditiones, par exemple, else {...}. 3.ElseIfchainsMultipleconditions, par exemple, elseifx == 10 {...}. 4.VariableInitializationInsideIf, L

GolangoffersSuperiorPerformance, nativeConcaunternandViagoroutines, and efficaceResourceUsage, faisant la provision de la trafic, low-lantentencyapis; 2.python, tandis que la locosystème de lavel

GOHandles ConcurrencyusingGoroutinesandChannels.1.goroutinesareLlightweightFunctionsManagedByThegorUtime, permettant à des milliers de dollars

La fa?on standard de protéger les zones critiques en GO consiste à utiliser les méthodes Lock () et déverrouiller () de synchronisation. 1. Déclarer un mutex et les utiliser avec les données à protéger; 2. Appelez Lock () avant d'entrer dans la zone critique pour s'assurer qu'un seul Goroutine peut accéder aux ressources partagées; 3. Utilisez Deferunlock () pour vous assurer que le verrou est toujours libéré pour éviter les blocs de bloces; 4. Essayez de raccourcir les opérations dans le domaine critique pour améliorer les performances; 5. Pour les scénarios où plus de lectures et moins d'écritures, Sync.Rwmutex doit être utilisée, lisez les opérations via Rlock () / Runlock () et écrivez les opérations via Lock () / Unlock () pour améliorer l'efficacité de la concurrence.
