Hay dos maneras. La fácil es usar el-run
bandera y proporcionar un patrón que coincida con los nombres de las pruebas que desea ejecutar.
Ejemplo:
$ go test -run NameOfTest
Ver los documentos para más información.
La otra forma es nombrar el archivo específico, que contiene las pruebas que desea ejecutar:
$ go test foo_test.go
Pero hay una trampa. Esto funciona bien si:
foo.go
está en package foo
.
foo_test.go
está en package foo_test
e importa 'foo'.
Si foo_test.go
y foo.go
son el mismo paquete (un caso común), debe nombrar todos los demás archivos necesarios para compilar foo_test
. En este ejemplo sería:
$ go test foo_test.go foo.go
Recomiendo usar el -run
patrón. O, donde / cuando sea posible, siempre ejecute todas las pruebas de paquetes.
-run
por favor? No puedo encontrar ninguna referencia manual sobre eso.go help testflag
go test utils.go utils_test.go
la salida esok command-line-arguments 0.002s
. No ejecuta la prueba. La razón por la que quiero usar este modo de prueba es porque el paquete contiene muchos archivos y aún no se compilan, excepto las utilidades. Por lo tanto, me gustaría finalizar las utilidades antes de trabajar en otros archivos. Cómo puedo hacer eso ?-v
bandera (detallada). De los documentos-v Verbose output: log all tests as they are run. Also print all text from Log and Logf calls even if the test succeeds.
La respuesta de @ zzzz es en su mayoría completa, pero solo para evitar que otros tengan que buscar en la documentación referenciada , puede ejecutar una sola prueba en un paquete de la siguiente manera:
Tenga en cuenta que desea pasar el nombre de la prueba, no el nombre del archivo donde existe la prueba.
El
-run
indicador realmente acepta una expresión regular para que pueda limitar la ejecución de la prueba a una clase de pruebas. De los documentos:fuente
Cuando ejecuto una sola prueba, generalmente hago:
-count 1
también asegura que la prueba se ejecute cada vez en lugar de ser almacenada en caché. Es útil cuando realiza pruebas en condiciones de carrera y tiene una prueba que falla solo a veces. En las versiones Go que no usan módulos, se puede lograr lo mismo configurando,GOCACHE=off
pero esto interactúa mal con los módulos Go.fuente
en intelliJ IDEA go-lang plugin (y supongo que en jetbrains Gogland) puede simplemente configurar el tipo de prueba para presentar en ejecución> editar configuraciones
fuente
fuente
Evita el almacenamiento en caché de los resultados de la prueba.
fuente
go
archivo de prueba en ese paquete-run TestCaseFunc
fuente