Maison >développement back-end >Golang >Pourquoi `fmt.Println()` ne fonctionne-t-il pas dans les tests Go et comment puis-je imprimer les informations de débogage ?

Pourquoi `fmt.Println()` ne fonctionne-t-il pas dans les tests Go et comment puis-je imprimer les informations de débogage ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-28 19:17:10140parcourir

Why Doesn't `fmt.Println()` Work in Go Tests, and How Can I Print Debugging Information?

Impression de tests Go avec le package "testing"

Imaginez que vous dépannez un test qui a échoué et que vous souhaitez ajouter des instructions d'impression pour le débogage , mais rien ne s'affiche lorsque vous exécutez le test. Pourquoi ?

Dans Go, les instructions fmt.Println() intégrées ne fonctionnent pas comme prévu dans les tests. Au lieu de cela, le package "testing" fournit des méthodes alternatives d'impression.

Les structures testing.T et testing.B ont des méthodes .Log et .Logf qui offrent des fonctionnalités similaires à fmt.Print et fmt.Printf. Ces méthodes vous permettent d'imprimer des instructions dans les tests.

Exemple :

func TestPrintSomething(t *testing.T) {
    t.Log("Say hi")
}

Cependant, même avec ces méthodes, le résultat peut ne pas être immédiatement visible. Pour voir les messages du journal, vous devez fournir l'indicateur -v (pour la verbosité) lors de l'exécution des tests :

go test -v

Avec l'indicateur -v, les messages du journal seront imprimés à côté des résultats du test, donnant vous les informations de débogage dont vous avez besoin.

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