Existe-t-il une meilleure pratique établie pour séparer les tests unitaires et les tests d'intégration dans GoLang (témoigner)? J'ai un mélange de tests unitaires (qui ne reposent sur aucune ressource externe et donc fonctionnent très vite) et de tests d'intégration (qui reposent sur des ressources externes et donc s'exécutent plus lentement). Donc, je veux pouvoir contrôler s'il faut ou non inclure les tests d'intégration quand je dis go test
.
La technique la plus simple semble être de définir un indicateur -integrate dans main:
var runIntegrationTests = flag.Bool("integration", false
, "Run the integration tests (in addition to the unit tests)")
Et puis pour ajouter une instruction if en haut de chaque test d'intégration:
if !*runIntegrationTests {
this.T().Skip("To run this test, use: go test -integration")
}
Est-ce le mieux que je puisse faire? J'ai cherché dans la documentation du témoignage pour voir s'il y avait peut-être une convention de dénomination ou quelque chose qui accomplit cela pour moi, mais je n'ai rien trouvé. Est-ce que je manque quelque chose?
var integration = flag.Bool("integration", true, "Enable integration testing.")
dehors d'une fonction, la variable apparaîtra dans la portée du package et l'indicateur fonctionnera correctement