Comment imprimer les informations de débogage dans un test Go à l'aide du package "testing" ?
Lors de l'écriture de tests Go, il est parfois utile de imprimez les informations de débogage pour vous aider à comprendre le comportement de votre code. Cependant, l'impression sur la sortie standard à l'aide de fmt.Println() ne fonctionne pas dans les tests. En effet, la sortie du test est mise en mémoire tampon et imprimée uniquement si le test échoue.
Le package "testing" propose deux méthodes alternatives pour imprimer les informations de débogage :
Ces méthodes sont similaires à fmt.Print() et fmt.Printf(), mais ils écrivent leur sortie directement dans le journal de test. Pour activer la journalisation, vous devez spécifier l'indicateur -v (verbeux) lors de l'exécution de go test :
go test -v
Cela imprimera tous les messages du journal sur la sortie standard, y compris ceux des tests réussis.
Voici un exemple d'utilisation de t.Log() et t.Logf() :
func TestPrintSomething(t *testing.T) { t.Log("Say hi") t.Logf("The value of myVar is %d", myVar) }
Lors de l'exécution de ce test avec -v, la sortie suivante sera imprimé :
=== RUN TestPrintSomething Say hi The value of myVar is 1234 --- PASS: TestPrintSomething (0.00s)
Vous pouvez également utiliser t.Error() pour imprimer un message d'erreur. Cela entraînera l'échec du test.
Voici un exemple d'utilisation de t.Error() :
func TestPrintSomething(t *testing.T) { if myVar != 1234 { t.Errorf("The value of myVar is %d, but it should be 1234", myVar) } }
Lors de l'exécution de ce test avec -v, la sortie suivante sera imprimé :
=== RUN TestPrintSomething The value of myVar is 4567, but it should be 1234 --- FAIL: TestPrintSomething (0.00s)
Le package de tests fournit également un type testing.B pour les tests d'analyse comparative. Le type testing.B a une méthode Log() qui fonctionne comme t.Log().
Voici un exemple d'utilisation de B.Log() :
func BenchmarkSomething(b *testing.B) { for i := 0; i < b.N; i++ { // Do something b.Log("The value of i is", i) } }
Quand en exécutant ce benchmark avec go test -v, le résultat suivant sera imprimé :
=== RUN BenchmarkSomething The value of i is 0 The value of i is 1 The value of i is 2 The value of i is 3 ... The value of i is 1000 --- BENCH: BenchmarkSomething 1000000000000000000/s
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!