我用"go test -v"来运行一系列单元测试.我想用delve来调试它们.当我试图运行调试器时,我得到一个"Can not debug non-main package"错误.那么,我如何使用delve调试器来调试单元测试呢?

推荐答案

使用dlv test:

$ dlv test -- -test.v
Type 'help' for list of commands.
(dlv) continue
=== RUN   TestReadFileError
--- PASS: TestReadFileError (0.00s)
=== RUN   TestReadFile
--- PASS: TestReadFile (0.00s)
[..]
PASS
Process 8014 has exited with status 0
(dlv) quit
Process 8014 has exited with status 0

您也可以通过-test.run来 Select 要运行的测试(就像go test -run一样).

在内部,这与Flimzy的答案相同(它用go test -c编译测试二进制文件),但更加精简,不会离开.要清理的测试文件.

Go相关问答推荐

出口上下文值密钥的安全方法?

Go Colly-访问for循环中的URL

使用Digitorus/pdfsign在GO(Golang)中签署pdf文件

如何执行asn 1 marshal/unmarshal和omit字段?

Go:为什么我不能比较 net.Addr

从带有嵌套括号的字符串中提取值

这种合并排序的实现有什么问题?

如何绕过深层 xml,没有嵌套循环?

正确的 shell 程序进入 golang alpine docker 容器的入口点?

Neptune 在连接到启用 IAM 的 Neptune 实例时抛出握手错误错误

设置 graphql 的最大文件上传大小(golang)

golang 中的可变参数函数

在恒等函数中将类型 T 转换为类型 U

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

跟踪长时间运行的任务的进度 - 正确的方法

Golang 有类似 C++ 的 decltype 的东西吗?

正则表达式处理数字签名的多个条目

处理程序中的无限循环

Go:为一组单个结果实现 ManyDecode

是否存在一个Go泛型类型约束,该约束捕获了将类型用作映射中的键的能力?