编译测试包时打印它们的名称

Mat*_*ner 5 go

运行go buildor go installwith-v将“打印编译时的包的名称”。当我跑步时如何得到同样的结果go test-v有手段输出测试信息。在某些包上运行测试时,由于某些依赖项的编译时间较长,它们可能会意外地花费很长时间。我希望对该过程有一些了解。

我能想到的最好的选择是尝试类似的方法go build -v ./...,但我不知道这是否包括构建测试的依赖关系,这是一个单独的步骤。

bla*_*een 0

使用go build是不可行的:

编译包时,build 会忽略以“_test.go”结尾的文件。

test命令没有打印包名称的标志。-v与 具有不同的含义build

一个迂回的解决方案是使用调试标志-x并将输出通过管道传输到grep. 的输出-x很笨重,因为它是调试的并且不适合在实际的命令管道中使用。

go test -x ./... 2>&1 | grep -E "^cd"
Run Code Online (Sandbox Code Playgroud)

以 开头的行cd是包含正在编译的包的行,因为它cd包含在其中。

这包括这些测试的依赖关系以及测试包和工作目录之间的来回依赖.。这不是一个完美的解决方案,但确实是这样。