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.goestá en package foo.
foo_test.goestá en package foo_teste importa 'foo'.
Si foo_test.goy foo.goson 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 -runpatrón. O, donde / cuando sea posible, siempre ejecute todas las pruebas de paquetes.
-runpor favor? No puedo encontrar ninguna referencia manual sobre eso.go help testflaggo test utils.go utils_test.gola 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 ?-vbandera (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
-runindicador 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 1tambié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=offpero 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
goarchivo de prueba en ese paquete-run TestCaseFuncfuente