Estoy ejecutando una prueba en Go con una declaración para imprimir algo (es decir, para depurar pruebas) pero no imprime nada.
func TestPrintSomething(t *testing.T) {
fmt.Println("Say hi")
}
Cuando ejecuto ir a probar en este archivo, este es el resultado:
ok command-line-arguments 0.004s
La única forma de hacer que se imprima realmente, hasta donde yo sé, es imprimirlo a través de t.Error (), así:
func TestPrintSomethingAgain(t *testing.T) {
t.Error("Say hi")
}
Que produce esto:
Say hi
--- FAIL: TestPrintSomethingAgain (0.00 seconds)
foo_test.go:35: Say hi
FAIL
FAIL command-line-arguments 0.003s
gom: exit status 1
Busqué en Google y revisé el manual, pero no encontré nada.

Respuestas:
Las estructuras
testing.Tytesting.Bambos tienen un método.Logy.Logfque suena a ser lo que estás buscando..Logy.Logfson similares afmt.Printyfmt.Printfrespectivamente.Vea más detalles aquí: http://golang.org/pkg/testing/#pkg-index
fmt.XDeclaraciones de impresión hacen pruebas en el interior de trabajo, pero se puede encontrar su salida no es, probablemente, en la pantalla donde se espera encontrar y, por lo tanto, por qué debería utilizar los métodos de registro entesting.Si, como en su caso, desea ver los registros de las pruebas que no fallan, debe proporcionar
go testla-vmarca (v para verbosidad). Puede encontrar más detalles sobre las banderas de prueba aquí: https://golang.org/cmd/go/#hdr-Testing_flagsfuente
Por ejemplo,
fuente
verbosees lo que estaba buscando.Sí: ese fue el caso hasta Go 1.13 (agosto de 2019) incluido.
Y eso fue seguido en el
golang.orgnúmero 24929.Pero para (posiblemente) Go 1.14 (Q1 2020): CL 127120
La salida ahora es:
De hecho, está en Go 1.14, como lo atestigua Dave Cheney en "
go test -vsalida de transmisión ":Ventaja, según Dave:
fuente
Para probar a veces lo hago
Además, puede imprimir en:
fuente
fmt.Println("hello").t.Loget.Logfimprime en su prueba, pero a menudo se puede perder ya que se imprime en la misma línea que su prueba. Lo que hago es registrarlos de manera que se destaquen, es decirque lo imprime en la terminal como,
fuente
El
*_test.goarchivo es una fuente Go como los demás, puede inicializar un nuevo registrador cada vez que necesite volcar una estructura de datos compleja, aquí un ejemplo:Entonces, cada vez, en cada prueba:
fuente