登录
首页 >  Golang >  Go问答

无法找到Go的主模块,但在/Users/dp/Documents中找到.git/config

来源:stackoverflow

时间:2024-02-22 16:18:25 317浏览 收藏

小伙伴们对Golang编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《无法找到Go的主模块,但在/Users/dp/Documents中找到.git/config》,就很适合你,本篇文章讲解的知识点主要包括。在之后的文章中也会多多分享相关知识点,希望对大家的知识积累有所帮助!

问题内容

我刚刚开始使用 golang,并尝试运行单元测试。运行 go test 时,我最终从终端得到以下输出

go: cannot find main module, but found .git/config in /users/dp/documents
    to create a module there, run:
    cd ../.. && go mod init

我的文件结构相当简单,如下

├── cards
│   ├── .vscode
│   ├── main.go
│   ├── test.go
│   ├── deck_test.go
│   └── my_cards.txt

deck_test.go 的内容是

package main

import "testing"

func TestNewDeck(t *testing.T) {
    d := newDeck()

    if len(d) != 52 {
        t.Errorf("Length is not 52, got %v", len(d))
    }

    if d[0] != "A of D" {
        t.Errorf("First card is not A of D, got %v", d[0])
    }

    if d[len(d)-1] != "K of C" {
        t.Errorf("Last card is not K of C, got %v", d[len(d)-1])
    }

}

任何见解都会有帮助!


正确答案


虽然不是必需的,但通常建议您在 git(或其他 vcs)存储库中使用 init ,以便模块可以依靠您的 remotes 信息来正确确定模块的名称,例如:

git init
git remote add origin https://github.com/syntaqx/dacode
go mod init

允许 go mod 理解我的模块名称可能是 github.com/syntaqx/dacode

或者,我经常这样做是为了不需要按任何特定顺序执行操作,您可以指定模块名称:

go mod init dacode # valid, but..
go mod init github.com/syntaqx/dacode # is generally better, because it describes my remote

通过指定它,模块可以在我所在的任何目录中初始化,而无需对代码进行任何修改。

注意:当您特别开始时,我强烈建议您使用与存储库相同的命名结构来命名您的模块。通过这样做,您将允许执行以下命令:

go get github.com/syntaqx/dacode

无需亲自进行任何内部操作即可正常运行。当您更多地了解它们的工作原理时,您可以决定是否要保留该约定或违背常规,但保持一致可能更明智。

希望这有帮助!

我没有使用 go 模块(我知道,我应该)。从旧版 go 版本升级到 1.16 后,我收到此错误。来自发行说明:

要仍然允许像以前一样工作,请将其更改为以前的样子。将其添加到您的 .bashrc 中:

export GO111MODULE=auto

今天关于《无法找到Go的主模块,但在/Users/dp/Documents中找到.git/config》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>