Esiste una best practice consolidata per separare unit test e test di integrazione in GoLang (testimoniare)? Ho un mix di unit test (che non si basano su risorse esterne e quindi funzionano molto velocemente) e test di integrazione (che si basano su risorse esterne e quindi funzionano più lentamente). Quindi, voglio essere in grado di controllare se includere o meno i test di integrazione quando dico go test
.
La tecnica più semplice sembrerebbe essere quella di definire un flag -integrate in main:
var runIntegrationTests = flag.Bool("integration", false
, "Run the integration tests (in addition to the unit tests)")
E poi per aggiungere un'istruzione if all'inizio di ogni test di integrazione:
if !*runIntegrationTests {
this.T().Skip("To run this test, use: go test -integration")
}
È questo il meglio che posso fare? Ho cercato nella documentazione di testimoniare per vedere se esiste forse una convenzione di denominazione o qualcosa che lo fa per me, ma non ho trovato nulla. Mi sto perdendo qualcosa?
var integration = flag.Bool("integration", true, "Enable integration testing.")
esterna a una funzione, la variabile verrà visualizzata nell'ambito del pacchetto e il flag funzionerà correttamente