Separating Unit Tests und Integrationstests in Go

Gibt es in GoLang eine bewährte Methode zur Trennung von Unit-Tests und Integrationstests (testify)? Ich habe eine Mischung aus Komponententests (die sich nicht auf externe Ressourcen stützen und daher sehr schnell ablaufen) und Integrationstests (die sich auf externe Ressourcen stützen und daher langsamer ablaufen). Ich möchte also steuern können, ob die Integrationstests einbezogen werden sollen, wenn ich @ saggo test.

Die einfachste Methode scheint zu sein, ein -integriertes Flag in main zu definieren:

var runIntegrationTests = flag.Bool("integration", false
    , "Run the integration tests (in addition to the unit tests)")

Und dann fügen Sie am Anfang jedes Integrationstests eine if-Anweisung hinzu:

if !*runIntegrationTests {
    this.T().Skip("To run this test, use: go test -integration")
}

Ist das das Beste was ich tun kann? Ich habe in der Testify-Dokumentation gesucht, um festzustellen, ob es möglicherweise eine Namenskonvention gibt oder etwas, das dies für mich bewirkt, aber nichts gefunden hat. Vermisse ich etwas?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage