为了账号安全,请及时绑定邮箱和手机立即绑定

使用 go.work 文件在多个测试文件上运行 go test 命令

使用 go.work 文件在多个测试文件上运行 go test 命令

Go
30秒到达战场 2023-03-07 13:51:33
从 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`)或类似脚本。


查看完整回答
反对 回复 2023-03-07
  • 1 回答
  • 0 关注
  • 149 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信