相关疑难解决方法(0)

使用Go模块组织软件包中的本地代码

main.go当在之外使用Go模块(go版本> = 1.11)时,找不到在本地包中分解出某些代码的方法$GOPATH

我没有导入任何需要包含的外部依赖项go.mod,我只是想在本地组织此Go模块的源代码。

文件main.go

package main

// this import does not work
import "./stuff"

func main() {
    stuff.PrintBaz()
}
Run Code Online (Sandbox Code Playgroud)

该文件./stuff/bar.go(假装为本地软件包):

package stuff

import "log"

type Bar struct {
    Baz int
}

func PrintBaz() {
    baz := Bar{42}
    log.Printf("Bar struct: %v", baz)
}
Run Code Online (Sandbox Code Playgroud)

文件go.mod(命令go mod init foo):

module foo

go 1.12
Run Code Online (Sandbox Code Playgroud)

执行时go run main.go

  • 如果是我import "./stuff",那么我明白了build command-line-arguments: cannot find module for path …

go go-packages go-modules

8
推荐指数
2
解决办法
6340
查看次数

go 模块多个主要方法

我有一个具有多种主要方法的项目。当运行go build program1/main1.go具有与 不同的依赖项集时program2/main2.go,我的第一个go build似乎更改了我的go.mod文件并删除了它认为不需要的依赖项。然而main2会需要这些依赖。

我试过使用,go build ...但这也创建了一组不同的依赖项。具体来说,似乎所有//indirect依赖项都被删除并导致 program2 失败。

有没有办法运行go buildgo run不更新go.mod文件?使用go build -mod=readonly program1/main1.go它告诉我它失败了,因为需要更新依赖项..

go go-modules

3
推荐指数
1
解决办法
1624
查看次数

如何在多模块 Go 项目中运行测试

我正在学习 Go,专业是用 Google Go 进行编程。它有几门课程,每门课程都有几个模块。

\n

我的项目如下所示(使用https://ascii-tree-generator.com/制作制作):

\n
google-golang/\n\xe2\x94\x9c\xe2\x94\x80 .github/\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 workflows/\n\xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 ci.yml\n\xe2\x94\x9c\xe2\x94\x80 golang-getting-started/\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 module1/\n\xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 main.go\n\xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 main_test.go\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 module2/\n\xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 trunc/\n\xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 main.go\n\xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 main_test.go\n\xe2\x94\x9c\xe2\x94\x80 .gitignore\n\xe2\x94\x9c\xe2\x94\x80 README.md\n
Run Code Online (Sandbox Code Playgroud)\n

我想为*_test.go每次提交运行文件中的所有测试,但我不清楚如何从根目录 ( google-golang) 执行此操作。我认为不需要一个模块导入另一个模块,因为练习可以独立完成。这个问题有两个答案,一个建议使用子模块,另一个建议使用Go工作区,但都没有提供像我这样的新手可以学习的具体说明。

\n

我不是在 GitHub Actions 上寻求帮助,我知道如何编写这些内容。我正在寻找一个或多个可以查找并运行测试的命令。

\n

unit-testing go go-modules

-2
推荐指数
1
解决办法
2178
查看次数

标签 统计

go ×3

go-modules ×3

go-packages ×1

unit-testing ×1