You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于go.work文件使用go test命令测试多模块工作区本地包

Go工作区本地包测试正确用法

核心逻辑

Go工作区模式下,go test需要直接指定本地模块路径或包路径,不能直接针对go.work文件执行,也不能用根目录的./...(因为根目录本身不是Go模块)。

具体操作方式

1. 测试单个子模块

进入目标子模块的目录(比如moduleA),运行:

go test ./...

该命令会测试当前模块下的所有包。

2. 在工作区根目录测试所有本地模块

在根目录直接执行以下任一命令:

  • 显式指定每个模块的递归路径:
    go test ./moduleA/... ./moduleB/...
    
    (将moduleA、moduleB替换为你的两个子目录名称)
  • 自动遍历工作区所有模块并测试:
    go test $(go list -m -f '{{.Dir}}/...')
    
    这个命令会自动识别go.work中声明的所有模块,测试每个模块下的所有包。

3. 测试特定模块的特定包

如果只想测试某个模块下的指定包(比如moduleA/pkg),执行:

go test ./moduleA/pkg

原命令失败原因

  • go test -v .\go.work:go test不支持将工作区文件作为参数,它的参数只能是包路径或模块路径。
  • go test ".\ ...":语法错误,正确递归测试写法是./...,但根目录无go.mod,无法匹配任何Go包。
  • go test all:会包含所有依赖的远程包,不符合仅测试本地包的需求。

内容的提问来源于stack exchange,提问作者DataPhaseDan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 07:10:20