gpt4 book ai didi

go - 查找 Go 程序的测试依赖项

转载 作者:IT王子 更新时间:2023-10-29 01:12:13 25 4
gpt4 key购买 nike

我目前正在使用 vendor/ 目录在本地供应我的依赖项。

go list -f '{{join .Deps "\n"}}' ./...  |grep -Eo 'vendor/.*'

这显示了我构建中使用的所有“构建依赖项”(从 vendor/ 使用)。此功能记录在此处:https://golang.org/cmd/go/#hdr-List_packages

但它不包括您的“测试依赖项”!

为了找到我的“测试依赖项”,我运行了这个命令:

$ go list -f '{{join .TestImports "\n"}}' ./...  |grep -Eo 'vendor/.*'
vendor/github.com/stretchr/testify/assert
...

它正确地列出了“测试导入”,但没有列出这些测试导入的“依赖项”。

比如上面列出的vendor/github.com/stretchr/testify/assert目录其实依赖于vendor/github.com/pmezard/go-difflib/difflib(和其他一些包)。这在上面的输出中没有显示!

但是如果我运行这个命令,它会显示 testify/assert 的依赖关系:

$ go list -f '{{join .Deps "\n"}}' ./vendor/github.com/stretchr/testify/assert | grep -Eo 'vendor/.*'
vendor/github.com/davecgh/go-spew/spew
vendor/github.com/pmezard/go-difflib/difflib
...

看来我需要对所有“测试导入”调用 go list -f '{{join .Deps "\n"}}' 以查找“所有测试依赖项”?

有没有更有效的方法,最好是使用单个 go list 调用和一些模板?

最佳答案

恐怕无法仅使用一个“go list”来显示所有递归测试依赖项。

您至少需要使用两个:

go list -f '{{join .Deps "\n"}}' `go list -f '{{join .TestImports " "}}' ./...`

关于go - 查找 Go 程序的测试依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50573657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com