从 go 1.18 开始,可以使用“go.work”文件作为多模块工作区保存文件,相当于“go.mod”文件。我想知道如何在命令 go test 中使用定义的“go.work”文件。我尝试了多种方法。当我打印 go.work 环境变量时,一切似乎都正常。如何在“go.work”文件上使用“go test”命令?假设我有一个包含两个子目录的目录,每个子目录都有一个 go.mod 文件和两个 .go 源文件(file.go 和 file_test.go),主目录只有 go.work 文件。go test -v .\go.work--> 不可能go test ".\ ..." --> 没有按规定工作,无法正确解析。该标志build.experimentalWorkspaceModule设置为 false,因为不再需要它。似乎go test all可行,但我只想测试我的包,而不是安装的整个包。我研究了整个文档,找不到示例,因为它似乎是新的并且不经常使用,pkg.go.dev 不提供信息。也不在这里https://go.googlesource.com/tools/+/refs/heads/master/gopls/doc/workspace.md
1 回答
慕侠2389804
TA贡献1719条经验 获得超6个赞
我认为不能go.work
用于此目的。工作区是模块系统的一部分,基本上用于使(对您而言)更容易设置本地多模块存储库。以下引述来自提案:
go.work 文件指定了一组组成工作区的本地模块。在工作区模式下调用时,go 命令将始终选择这些模块和一组一致的依赖项。
这是工作区教程中的一个:
go.work
可以使用而不是添加replace
指令来跨多个模块工作。
最后这个来自官方文档:
工作区是磁盘上的模块集合,在运行最小版本选择 (MVS) 时用作主要模块。
同时运行多个模块的测试套件与 go.work 的用例是正交的。为此,您仍然必须使用 shell 脚本(请参阅在多个 go 模块的父目录中运行 `go test`)或类似脚本。
- 1 回答
- 0 关注
- 149 浏览
添加回答
举报
0/150
提交
取消