非常に具体的な問題を解決するための記事です。
バージョン
$ go version
go version go1.18.3 darwin/amd64
問題点
-
~/SOME/PATH/monkey/token
の用にフォルダを作成する(自分の場合は~/program/go/interpreter/monkey/token
としている) -
go mod init github.com.....
としたらダメだった
$ go test ./lexer
# github.com/yojiyama7/go_interpreter/lexer
lexer/lexer_test.go:5:2: package monkey/token is not in GOROOT (/usr/local/go/src/monkey/token)
FAIL github.com/yojiyama7/go_interpreter/lexer [setup failed]
FAIL
解決策
-
go.mod
ファイルを削除して、 -
monkey
ディレクトリでgo mod init monkey
とする - このような内容の
go.mod
ができる
module monkey
go 1.18
DONE
-
monkey
ディレクトリでgo test ./lexer
が動いた
$ go test ./lexer
# monkey/lexer [monkey/lexer.test]
lexer/lexer_test.go:12:25: undefined: token.TokenType
lexer/lexer_test.go:26:7: undefined: New
FAIL monkey/lexer [build failed]
FAIL