Gibt es eine bewährte Methode zur Trennung von Komponententests und Integrationstests in GoLang (testify)? Ich habe eine Mischung aus Komponententests (die nicht auf externen Ressourcen beruhen und daher sehr schnell ausgeführt werden) und Integrationstests (die auf externen Ressourcen basieren und daher langsamer ausgeführt werden). Ich möchte also steuern können, ob die Integrationstests eingeschlossen werden sollen oder nicht, wenn ich sage go test
.
Die einfachste Technik scheint darin zu bestehen, ein Integrationsflag in main zu definieren:
var runIntegrationTests = flag.Bool("integration", false
, "Run the integration tests (in addition to the unit tests)")
Und dann, um jedem Integrationstest eine if-Anweisung hinzuzufügen:
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 Zeugnisdokumentation nach einer Namenskonvention oder etwas gesucht, das dies für mich bewirkt, aber nichts gefunden. Vermisse ich etwas
var integration = flag.Bool("integration", true, "Enable integration testing.")
die Variable als außerhalb einer Funktion definieren, wird die Variable im Paketbereich