¿Existe una mejor práctica establecida para separar pruebas unitarias y pruebas de integración en GoLang (testificar)? Tengo una combinación de pruebas unitarias (que no dependen de ningún recurso externo y, por lo tanto, se ejecutan muy rápido) y pruebas de integración (que dependen de recursos externos y, por lo tanto, se ejecutan más lentamente). Entonces, quiero poder controlar si incluir o no las pruebas de integración cuando digo go test
.
La técnica más sencilla parece ser definir una bandera -integrate en main:
var runIntegrationTests = flag.Bool("integration", false
, "Run the integration tests (in addition to the unit tests)")
Y luego, para agregar una declaración if en la parte superior de cada prueba de integración:
if !*runIntegrationTests {
this.T().Skip("To run this test, use: go test -integration")
}
¿Es esto lo mejor que puedo hacer? Busqué en la documentación de Testify para ver si tal vez hay una convención de nomenclatura o algo que logre esto para mí, pero no encontré nada. ¿Me estoy perdiendo de algo?
var integration = flag.Bool("integration", true, "Enable integration testing.")
fuera de una función, la variable se mostrará en el alcance del paquete y la bandera funcionará correctamente