使用deve

时间:2017-04-12 22:17:23

标签: debugging go delve

我正在使用" go test -v "运行一堆单元测试。我想使用delve调试它们。当我尝试运行调试器时,我得到一个"无法调试非主包" 错误。那么,我如何使用delve调试器调试单元测试?

2 个答案:

答案 0 :(得分:9)

使用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选择要运行的测试(就像go test -run一样)。

在内部,这与Flimzy的答案相同(它使用go test -c编译测试二进制文件),但更精简,不会留下.test文件供您清理。

答案 1 :(得分:0)

我不熟悉deve,但如果它可以在已编译的二进制文件上工作,只需使用-c标志编译测试:

    -c
        Compile the test binary to pkg.test but do not run it
        (where pkg is the last element of the package's import path).
        The file name can be changed with the -o flag.

然后在输出上运行deve。