從 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 關注
- 195 瀏覽
添加回答
舉報
0/150
提交
取消