单元测试中使用Run()调用子测试函数,直接运行test文件无法得到结果,终端运行可以,请问原因?

1. 运行环境#

windows 下的 goland2022.1 Go 版本:1.18

2. 问题描述?#

单元测试中使用 Run () 调用子测试函数,直接运行 test 文件无法得到结果,终端使用 go test 运行可以,请问原因?请问如果使直接运行 test 文件得到正确结果?

package main

import (
    "fmt"
    "testing"
)

func TestUser(t *testing.T) {
    fmt.Println("开始测试User中的测试方法")
    //通过t.Run()来执行子测试函数
    t.Run("测试子测试函数:", testAddUser)
}

func testAddUser(t *testing.T) {
    fmt.Println("子测试函数执行:")
}

3. 您期望得到的结果?#

使用终端运行得到正确结果,期望直接运行 go 文件也可以得到正确结果
单元测试中使用Run()调用子测试函数,直接运行test文件无法得到结果,终端运行可以,请问原因?

4. 您实际得到的结果?#

单元测试中使用Run()调用子测试函数,直接运行test文件无法得到结果,终端运行可以,请问原因?

单元测试中使用Run()调用子测试函数,直接运行test文件无法得到结果,终端运行可以,请问原因?

子测试函数一直转圈,无法显示正确结果
单元测试中使用Run()调用子测试函数,直接运行test文件无法得到结果,终端运行可以,请问原因?

最佳答案

t.Run ("测试子测试函数:", testAddUser) 并没有执行,需要加上括号

2年前 评论
AB (作者) 2年前
herrluk23187 (楼主) 2年前
AB (作者) 2年前
AB (作者) 2年前
herrluk23187 (楼主) 2年前
讨论数量: 8

t.Run ("测试子测试函数:", testAddUser) 并没有执行,需要加上括号

2年前 评论
AB (作者) 2年前
herrluk23187 (楼主) 2年前
AB (作者) 2年前
AB (作者) 2年前
herrluk23187 (楼主) 2年前

file 如果为了断点有专门的入口

2年前 评论

go test -v 可以打印出调试内容

2年前 评论