Heim >Backend-Entwicklung >Golang >So verwalten Sie Tests, die API-Schlüssel erfordern
PHP-Editor Apple stellt Ihnen vor, wie Sie Tests verwalten, die API-Schlüssel erfordern. Während der Entwicklung benötigen viele Anwendungen API-Schlüssel, um auf Dienste von Drittanbietern zuzugreifen. Allerdings kann die Verwaltung dieser Schlüssel komplex und langwierig werden. Um diesen Prozess zu vereinfachen, können wir einige effektive Verwaltungsstrategien anwenden, z. B. die Verwendung von Umgebungsvariablen, Schlüsselverwaltungstools, Schlüsselrotation usw. Diese Methoden verbessern nicht nur die Sicherheit, sondern erleichtern Entwicklern auch das Testen und Bereitstellen. In diesem Artikel gehen wir detailliert auf diese Strategien ein und geben einige Vorschläge, die Ihnen dabei helfen sollen, Tests, die API-Schlüssel erfordern, besser zu verwalten.
Ich habe einige Siegeltests, die großartig funktionieren. foo.go
中的代码在 foo_test.go
zum Testen.
Aber ich habe auch einige Tests, die einen API-Schlüssel erfordern, und ich möchte diese von den versiegelten Tests getrennt halten, da wir sie nicht in CI ausführen.
Wie kann man diese Tests effektiv isolieren, sodass sie gut mit den Tools und dem Ökosystem von Go harmonieren?
Es gibt mehrere Möglichkeiten, Tests zu überspringen. Die meisten von ihnen nutzen testing.t.skip(now). Hier sind einige häufige Anwendungsfälle für Skipnow. Da dies jedoch wie jeder alte Funktionsaufruf ist, können Sie Ihrer Kreativität freien Lauf lassen.
package main import ( "os" "testing" ) func testalways(t *testing.t) { } func testsometimes(t *testing.t) { key := os.getenv("foo_api_key") if key == "" { t.skip("foo_api_key is empty") } }
Führen Sie einen der folgenden Schritte aus:
go test -v foo_api_key=bar go test -v
short
Flaggepackage main import ( "testing" ) func testalways(t *testing.t) { // ... } func testsometimes(t *testing.t) { if testing.short() { t.skip("-short is set") } // ... }
Führen Sie einen der folgenden Schritte aus:
go test -v -short go test -v
package main import ( "flag" "testing" ) var withfoo = false // or true to run test by default func init() { flag.boolvar(&withfoo, "with-foo", withfoo, "include foo tests") } func testalways(t *testing.t) { // ... } func testsometimes(t *testing.t) { if !withfoo { t.skip("-with-foo is not set") } // ... }
Führen Sie einen der folgenden Schritte aus:
go test -v go test -v -with-foo
// main_test.go package main import ( "testing" ) func testalways(t *testing.t) { // ... }
// foo_test.go //go:build foo package main import ( "testing" ) func testsometimes(t *testing.t) { // ... }
Führen Sie einen der folgenden Schritte aus:
go test -v go test -v -tags=foo
Bitte beachten Sie, dass bei Build-Flags die Ausgabe nicht anzeigt, dass der Test übersprungen wurde. Eine mit Tags versehene .go-Datei ist für den Compiler unsichtbar, es sei denn, das Build-Flag ist in der Befehlszeile (oder in Goflags) enthalten.
Das obige ist der detaillierte Inhalt vonSo verwalten Sie Tests, die API-Schlüssel erfordern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!