我需要执行大约go test ./... -v -args -name1 val1

推荐答案

Go测试框架使用global flag.(*FlagSet)实例.在测试文件中创建的任何标志都可以从命令行获得.测试框架不使用的位置参数可以通过flag.Args()(和flag.Argflag.NArg)获得.位置参数需要--才能在命令行上将它们分开.

例如:

package testflag

import (
    "flag"
    "testing"
)

var value = flag.String("value", "", "Test value to log")

func TestFlagLog(t *testing.T) {
    t.Logf("Value = %q", *value)
    t.Logf("Args = %q", flag.Args())
}

假设上述测试位于多个目录testflagtestflag/atestflag/b中,运行go test -v ./... -value bar -- some thing个输出:

=== RUN   TestFlagLog
    testflag_test.go:11: Value = "bar"
    testflag_test.go:12: Args = ["some" "thing"]
--- PASS: TestFlagLog (0.00s)
PASS
ok          testflag        0.002s
=== RUN   TestFlagLog
    testflag_test.go:11: Value = "bar"
    testflag_test.go:12: Args = ["some" "thing"]
--- PASS: TestFlagLog (0.00s)
PASS
ok          testflag/a      0.001s
=== RUN   TestFlagLog
    testflag_test.go:11: Value = "bar"
    testflag_test.go:12: Args = ["some" "thing"]
--- PASS: TestFlagLog (0.00s)
PASS
ok          testflag/b      0.002s

Go相关问答推荐

如何创建两个连接的io.ReadWriteClosers以用于测试目的

如何模拟嵌入. FS?

golang 的条件储存库

为什么我不能使用Docker从本地访问我的Gin应用程序?

由docker中的nginx提供的样式和图像在页面上不起作用

如何在Golang中覆盖404

`docker system df` 与 `/system/df` (docker api 端点)

不接受来自 stdin 的重复输入

在运行时更改 Go lang slog 的日志(log)级别

这是go语言gin提供的关于TypeEngine和RouterGroup的问题

为什么标准库中的 IsSorted 会反向迭代切片?

如何从Go项目连接Microsoft Access数据库?

将 struct 转换为 CSV 字符串

上传图片失败,出现错误dial tcp: lookup api.cloudinary.com: no such host

获取不带类型参数的泛型 struct 的类型名称

在 Gorm 的 AfterFind() 钩子中获取智能 Select struct 的值

在删除级联时无法在 Gorm 中按预期工作

无法访问 Go 模块导入的远程存储库

从golang中的url加载图像

泛型:对具有返回自身的函数的类型的约束