【问题标题】:Can't run go tests from GoLand (Intellij Idea): compilation failed无法从 GoLand 运行 go 测试(Intellij Idea):编译失败
【发布时间】:2020-06-02 12:26:37
【问题描述】:

我在 Go 中制作了简单的应用程序,并尝试使用 GoLand 的 GUI 工具运行测试。

在 test func 附近的 myfile_test.go 文件中,我按下应该开始测试的绿色按钮。但我收到错误消息:“编译失败”和控制台中的消息:

# command-line-arguments [command-line-arguments.test]
./myfile_test.go:21:11: undefined: MyStruct
./myfile_test.go:22:12: undefined: MyFuncName
./myfile_test.go:33:12: undefined: AnotherStruct

Compilation finished with exit code 2

其他变体(使用覆盖率/CPU 配置文件运行测试)也不起作用。 GoLand 2020.1 EAP。旧版本的 GoLand 也出现了同样的问题。

但控制台测试正常启动:

go test -v

=== RUN   TestMyStruct_MyMethod
--- PASS: TestMyStruct_MyMethod (0.00s)
PASS
ok      _/home/username/projects/my_project_name     0.002s

【问题讨论】:

    标签: go testing intellij-idea goland


    【解决方案1】:

    @porfirion 的回答对我有用。

    基本上,你需要在“Preferences”->“Go”->“Go Modules”下在GoLand中勾选“Enable Go Modules integration”

    然后,Goland 将重新索引您的项目,如果您有一个包含许多模块的大型项目,这可能需要很长时间。我的花了30分钟。您可以在 IDE 底部查看重新索引的进度状态。

    测试运行将在重新索引后运行。

    【讨论】:

    • 您还需要运行go mod init 来创建一个go.mod 文件,如@porfirion 的回答。我还发现直到我关闭项目并重新打开它才起作用。
    【解决方案2】:

    我通过初始化新的 go 模块和启用 Go 模块集成解决了问题:

    1) 在终端运行go mod init my_module_name

    2) 点击“文件->设置”或按Ctrl+Alt+S

    3) 勾选“Enable Go Modules Integration”并应用按钮

    现在 GoLand 中的所有测试功能都运行良好(包括覆盖测试等)

    【讨论】:

    • 在我的情况下,我将我的项目从 go 目录 (Linux) 下移到了其他地方,因为我在那里遇到了权限问题。然后我不能再运行或调试项目。
    【解决方案3】:

    这里的问题是您指向一个文件。所有其他文件,即使它们在包中,也不会被导入。 go build 具有相同的行为,如果您要构建单个文件而忘记在命令中包含它使用的其他文件。

    将测试类型更改为“目录”,将文件更改为"/project-root-dir"。这将在构建期间包含目录中的所有文件,并应查找所有 _test.go 文件以执行测试。

    【讨论】:

    • 有效!不幸的是,每次我单击单个测试时 - IDEA 都会创建新配置,并且它总是有一种“文件”。即使我手动将种类更改为“目录”并再次单击方法 - IDEA 也会使用种类“文件”创建另一个配置。非常失望(
    • 我发现这个答案不起作用。当您尝试使用绿色箭头按钮运行/调试特定测试时,您无法控制“测试类型”选项。如果您更改“运行/调试配置”中的“测试类型”设置,那么 GoLand 会在您调试单个特定测试时创建一个带有“测试类型”= 文件的新配置。我发现唯一的方法是(1)将您的项目放在 GOPATH 中或(2)使用模块(如其他答案中所述)
    猜你喜欢
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-29
    • 2013-08-17
    相关资源
    最近更新 更多