如何管理需要 API 密钥的测试
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 密钥的测试的详细内容,更多请关注编程网其它相关文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341