php小編蘋果為您介紹如何管理需要 API 金鑰的測試。在開發過程中,許多應用程式需要使用 API 金鑰來存取第三方服務。然而,管理這些密鑰可能會變得複雜和冗長。為了簡化這個過程,我們可以採取一些有效的管理策略,例如使用環境變數、金鑰管理工具、金鑰輪替等。這些方法不僅可以提高安全性,還能方便開發人員進行測試和部署。在本文中,我們將詳細介紹這些策略,並提供一些建議來幫助您更好地管理需要 API 金鑰的測試。
我有一些密封測試,這些測試運作得很好。 foo.go
中的程式碼在 foo_test.go
中進行測試。
但我也有一些需要 API 金鑰的測試,我希望將這些測試與密封測試分開,因為我們不在 CI 中運行它們。
如何以與 Go 工具和生態系統良好配合的方式有效地隔離這些測試?
有多種方法可以跳過測試。他們中的大多數人都利用testing.t.skip(now)。以下是 skipnow 的一些常見用例。然而,由於這就像任何舊的函數呼叫一樣,您可以根據需要發揮創意。
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") } }
執行以下之一:
go test -v foo_api_key=bar go test -v
short
標誌package main import ( "testing" ) func testalways(t *testing.t) { // ... } func testsometimes(t *testing.t) { if testing.short() { t.skip("-short is set") } // ... }
執行以下之一:
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") } // ... }
執行以下之一:
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) { // ... }
執行以下之一:
go test -v go test -v -tags=foo
請注意,使用建置標記,輸出不會表示測試已被跳過。除非建置標記包含在命令列(或 goflags 中),否則標記的 .go 檔案對編譯器來說是不可見的。
以上是如何管理需要 API 金鑰的測試的詳細內容。更多資訊請關注PHP中文網其他相關文章!