看一下这个目录结构:
/root
/one
go.mod
go.sum
main.go
main_test.go
/two
go.mod
go.sum
main.go
main_test.go
假设我在父目录中root/
我想运行所有子目录中的所有测试。我该怎么办?我试过了go test./...
并得到以下错误:
go: warning: "./..." matched no packages
no packages to test
是的,这不适用于go test
,它期望在以当前目录或其父目录为根的单个模块上工作。它也不适用于嵌套模块。
你需要一个 shell 技巧,比如使用find
或相当于在每个模块中执行的内容(例如,请参阅 Cerise Limón 的评论)。项目通常会使用Makefile
or a test.sh
脚本来运行它。
One 我正在做的更大的项目有其所有模块的列表(https://github.com/google/go-cloud/blob/master/allmodules),然后是在此列表上运行的几个脚本。例如测试脚本 just 循环通过这个文件并运行go test
对于每个目录以及其他内容。
您不一定需要一个单独的文件来列出模块(go-cloud
项目将其用于其他管理任务),但它只是演示了具有多个模块的大型项目处理事物的一种方式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)