golang test 自定义参数
时间: 2023-09-19 18:09:09 浏览: 218
在 Go 语言中,你可以通过在测试文件中定义带有 `testing.T` 参数的函数来编写测试用例。这些测试函数的名称必须以 `Test` 开头,例如:
```go
func TestMyFunc(t *testing.T) {
// ...
}
```
在测试文件中,你还可以定义带有 `testing.B` 参数的基准测试函数,名称必须以 `Benchmark` 开头,例如:
```go
func BenchmarkMyFunc(b *testing.B) {
for i := 0; i < b.N; i++ {
// ...
}
}
```
在测试函数中,你可以使用 `t.Run` 方法来运行其他测试函数,例如:
```go
func TestMySuite(t *testing.T) {
t.Run("TestMyFunc1", func(t *testing.T) {
// ...
})
t.Run("TestMyFunc2", func(t *testing.T) {
// ...
})
}
```
此外,你还可以在命令行中指定一些自定义参数来运行测试,例如:
```bash
go test -run TestMyFunc -v
```
这将只运行名称为 `TestMyFunc` 的测试函数,并输出详细信息。你还可以通过 `-args` 参数传递自定义参数,例如:
```bash
go test -args -myflag=true -myarg=123
```
这将在测试函数中获取 `os.Args` 列表,并包含额外的参数 `-myflag=true` 和 `-myarg=123`。在测试函数中,你可以使用 `flag` 包来解析这些参数。例如:
```go
import "flag"
func TestMyFunc(t *testing.T) {
flag.Bool("myflag", false, "A boolean flag")
flag.Int("myarg", 0, "An integer argument")
flag.Parse()
myflag := flag.Bool("myflag", false, "")
myarg := flag.Int("myarg", 0, "")
// ...
}
```
这样你就可以在测试函数中使用 `myflag` 和 `myarg` 变量来获取命令行传递的参数了。
阅读全文