Existe uma prática recomendada estabelecida para separar testes de unidade e testes de integração em GoLang (testemunhar)? Eu tenho uma mistura de testes de unidade (que não dependem de nenhum recurso externo e, portanto, são executados muito rápido) e testes de integração (que dependem de quaisquer recursos externos e, portanto, são executados mais lentamente). Então, eu quero ser capaz de controlar se devo ou não incluir os testes de integração quando eu disser go test
.
A técnica mais direta parece ser definir um sinalizador -integrate em principal:
var runIntegrationTests = flag.Bool("integration", false
, "Run the integration tests (in addition to the unit tests)")
E, em seguida, adicionar uma instrução if no início de cada teste de integração:
if !*runIntegrationTests {
this.T().Skip("To run this test, use: go test -integration")
}
É o melhor que posso fazer? Pesquisei a documentação do testify para ver se há talvez uma convenção de nomenclatura ou algo que faça isso para mim, mas não encontrei nada. Estou esquecendo de algo?
var integration = flag.Bool("integration", true, "Enable integration testing.")
fora de uma função, a variável aparecerá no escopo do pacote e o sinalizador funcionará corretamente