单元测试中使用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) 并没有执行,需要加上括号

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

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

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

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

1年前 评论

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

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!