如何在多模块Go项目的根目录下执行所有测试用例
方法1:使用Go工作区(推荐,一次配置长期使用)
要求Go版本 >= 1.18,只需配置一次,后续执行测试非常方便:
- 进入项目根目录
google-golang,执行命令初始化Go工作区:go work init - 将所有包含测试文件的子模块目录加入工作区:
go work use ./golang-getting-started/module1 ./golang-getting-started/module2/trunc
如果后续新增了带测试的模块目录,重新执行go work use 新目录路径添加即可。 - 每次需要执行所有测试时,直接在根目录运行以下命令:
go test ./...
如果需要查看详细测试输出,加上-v参数:go test -v ./...
如果需要跳过本地缓存强制重新执行所有测试,加上-count=1参数:go test -count=1 ./...
方法2:无需额外配置的单命令方案
如果不想修改项目配置,可以直接用单行命令递归查找所有测试文件并执行,在根目录直接运行即可:find . -name "*_test.go" -type f | xargs dirname | sort -u | xargs -I {} go test {}
内容的提问来源于stack exchange,提问作者Abhijit Sarkar
相关产品推荐
相关产品推荐

