Dans le code fourni, la méthode de sortie inclut une condition qui exclut l'os.Exit (code) ligne des résultats de couverture. Cela crée une tache aveugle dans le rapport de couverture, car la ligne est exécutée mais n'est pas affichée en vert.
Il existe deux approches principales pour résoudre ce problème :
Utilisation de TestMain :
Refactorisation du code :
Voici une version mise à jour du code à l'aide de balises de build :
<code class="go">//+build !test package main import "os" func main() { os.Exit(doFunc()) }</code>
Ce code modifié sera exclu des rapports de couverture, vous permettant de représenter avec précision la couverture de vos tests fonctionnels.
Construisez le binaire de couverture avec :
<code class="sh">go test -c -coverpkg=. -o example -tags test</code>
Exécutez les tests avec :
<code class="sh">./example -test.coverprofile=/tmp/profile</code>
Le rapport de couverture résultant devrait maintenant afficher une couverture de relevé de 100 %, y compris la ligne précédemment exclue dans la méthode de sortie.
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!