【发布时间】:2021-01-24 14:47:06
【问题描述】:
我正在尝试遵循 Thorsten Ball 的用 Go 编写解释器一书,在第一章中他建立了这个简单的方案
file /Users/myuser/projects/monkey/token/token.go
file /Users/myuser/projects/monkey/lexer/lexer.go
file /Users/myuser/projects/monkey/lexer/lexer_test.go
在 lexer/lexer.go 和 lexer/lexer_test.g 文件开始为
package lexer
而在 lexer_test.go 中,导入是
import (
"testing"
"monkey/token"
)
然后他说为了运行测试,我必须运行(从 /Users/myuser/projects/monkey 目录):
go test lexer/lexer_test.go
但是当我这样做时,我收到错误:
lexer/lexer_test.go:6:2: cannot find package "monkey/token" in any of:
/usr/local/opt/go/libexec/src/monkey/token (from $GOROOT)
/Users/myuser/golang/src/monkey/token (from $GOPATH)
FAIL command-line-arguments [setup failed]
FAIL
我一直在尝试了解如何在 go 中配置包,但是我发现了很多关于 GOPATH、GOROOT 和 go.mod 的非常复杂的文档。我一直在尝试所有这些方法,但没有解决这个问题。
有人可以帮帮我吗?我确定这是一个简单的修复,但我无法弄清楚:(
【问题讨论】:
-
go 工具适用于包,不要尝试构建和测试单个文件。
-
按照How to Write Go Code中的步骤操作。
-
我正在按照书中的说明进行操作。而且书上说的很清楚:go test lexer/lexer_test.go
标签: go configuration gopath