Maison > Article > développement back-end > Comment améliorer les tests et la couverture des fonctions Golang ?
Comment améliorer la couverture des tests des fonctions Golang ? Mesurer la couverture : utilisez la commande go test -cover. Ajouter des exceptions de scénario de test : ajoutez des exceptions de scénario de test pour les chemins de code non exécutés. Utilisation d'un profil de couverture : utilisez go test -coverprofile=cover.out pour créer un profil de couverture. Utilisez l'outil de couverture : utilisez go tool cover -html=cover.out pour afficher un rapport de couverture détaillé.
Comment améliorer la couverture des tests des fonctions Golang
Introduction
La couverture des tests mesure quelles parties de l'application sont exécutées dans le test. Une couverture élevée indique que la majorité des chemins de code dans l'application ont été exécutés pendant les tests, augmentant ainsi la confiance dans la fiabilité du logiciel. Cet article vous guidera sur la façon d'améliorer la couverture des tests de vos fonctions Golang.
Mesurer la couverture
Pour mesurer la couverture, vous pouvez utiliser la commande go test -cover
. Cette commande imprimera un rapport de couverture après les tests. go test -cover
命令。该命令将在测试运行后打印覆盖率报告。
go test -cover
实用案例
考虑以下 Golang 函数:
func Sum(a, b int) int { return a + b }
初始测试覆盖率报告如下:
coverage: 50.0% of statements
该覆盖率表明只有 50% 的代码在测试中得到了执行。要提高覆盖率,需要添加测试用例外界因素,以执行未执行的代码路径。
添加测试用例外界因素
对于 Sum
函数,可以添加如下测试用例外界因素,以覆盖未执行的代码路径:
func TestSumNegative(t *testing.T) { result := Sum(-1, -2) if result != -3 { t.Errorf("Expected -3, got %d", result) } }
这个测试用例外界因素测试了函数是否处理负数输入。添加此测试用例外界因素后,覆盖率报告将如下所示:
coverage: 100.0% of statements
使用覆盖率配置文件
为了更容易地跟踪与覆盖率相关的更改,可以使用覆盖率配置文件。覆盖率配置文件包含了覆盖率数据,可用于在不同的测试运行之间进行比较。要创建覆盖率配置文件,请使用 go test -coverprofile=cover.out
命令。
go test -coverprofile=cover.out
使用 cover
工具
cover
工具是一个交互式工具,使您可以浏览代码覆盖率信息。要使用 cover
go tool cover -html=cover.out
Cas pratique
Considérons la fonction Golang suivante : rrreee
Le rapport de couverture de test initial est le suivant :rrreee
Cette couverture indique que seulement 50 % du code a été exécuté dans le test. Pour améliorer la couverture, vous devez ajouter des exceptions de scénario de test pour exécuter les chemins de code qui ne sont pas exécutés. 🎜🎜🎜Ajouter des exceptions de scénario de test🎜🎜🎜Pour la fonctionSum
, vous pouvez ajouter les exceptions de scénario de test suivantes pour couvrir le chemin du code non exécuté : 🎜rrreee🎜Cette exception de scénario de test teste si la fonction Handle négatif saisir. Après avoir ajouté cette exception de cas de test, le rapport de couverture ressemblera à ceci : 🎜rrreee🎜🎜Utilisation des profils de couverture🎜🎜🎜Pour suivre plus facilement les modifications liées à la couverture, vous pouvez utiliser les profils de couverture. Les profils de couverture contiennent des données de couverture qui peuvent être utilisées pour des comparaisons entre différentes séries de tests. Pour créer un profil de couverture, utilisez la commande go test -coverprofile=cover.out
. 🎜rrreee🎜🎜Utilisez l'outil cover
🎜🎜🎜 L'outil cover
est un outil interactif qui vous permet de parcourir les informations de couverture de code. Pour utiliser l'outil cover
, exécutez la commande suivante : 🎜rrreee🎜Cela ouvrira un rapport HTML dans votre navigateur par défaut affichant des données de couverture détaillées pour chaque fonction et méthode. 🎜🎜🎜Résumé🎜🎜🎜En ajoutant des exceptions de cas de test et en utilisant des profils de couverture, vous pouvez améliorer la couverture de test de vos fonctions Golang. Une couverture élevée augmente la confiance dans la fiabilité du logiciel et aide à identifier les zones non testées dans le 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!