通过Visual Studio Code进行的GoLang扩展:导入无效。可以从常规命令行进行构建和测试

FranticRock:

我正在使用VS Code在MacOS上测试这个非常简单的Go代码。该项目包含以下样本包/文件:

  1. azure.com/myproj/cmd/service/main/main.go
  2. azure.com/myproj/cmd/service/service.go
  3. azure.com/myproj/cmd/service/tests/test.go
  4. azure.com/myproj/internal/common/common.go

在终端命令行上,所有内容均已构建且所有测试均通过:go build。//(适用于每个文件夹)进行测试。//(测试工作并通过)

但是,从VS代码来看,我有两个问题:1.从软件包到软件包的导入根本不起作用。例如:

package test

import (
    service "azure.com/myproj/cmd/service"    // VS complains on this line when running the test.
)
  1. VS代码运行的命令不仅仅是“去测试”。它传递了额外的参数,其中包括似乎是缓存路径的路径,我尝试从文件系统中删除该路径,但没有效果。这是VS.code的“输出”选项卡包含的内容:

转到测试标签:

unknown import path "azure.com/myproj/cmd/service": 
cannot find module providing package 
azure.com/myproj/cmd/service

转到标签:

/Users/computername/go/src/azure.com/projname/cmd/service/tests 
>Finished running tool: /usr/local/bin/go test -c -o 
/var/folders/q5/hm9v_6x53lj0gj02yxqtkmd40000gn/T/vscode-goKGOMES/go- code-check azure.com/myproj/cmd/service/tests
can't load package: package 

azure.com/myproj/cmd/service: unknown import path 
"azure.com/myproj/cmd/service": cannot find module 
providing package azure.com/myproj/cmd/service

我不明白上面hm9v_6x53lj0gj02yxqtkmd40000gn的 VS代码在做什么以及如何更改它。它看起来像一个缓存。

总结一下:在通过VS Code进行测试时,我不明白为什么它使用了运行测试的命令(如上所述),以及为什么它找不到常规的“开始构建”和“开始”的导入。 test。“命令通过终端没有问题。

再次:从终端命令行构建所有内容,并通过所有测试。

似乎显然是与VS Code相关的问题。

FranticRock:

我找到了解决我问题的答案。VS不喜欢该项目的文件路径结构。这是我所做的更改:

  1. 将main.go从azure.com/myproj/cmd/service/main/main.go上移至azure.com/myproj/cmd/service/main.go

  2. 将服务实现(service.go)移至内部文件夹:azure.com/myproj/internal/service/service.go

  3. 将测试移至内部文件夹:azure.com/myproj/internal/service/test/service_test.go

VS代码如何能够运行测试而不会抱怨找不到导入。

所以现在我的/ cmd / service文件夹中只有main.go。一切都包含在内部,包括测试。我怀疑将main.go埋入子文件夹会使VS Code感到困惑。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Visual Studio Code无法通过命令行打开

如何通过命令行向Visual Studio Code添加扩展?

如何通过Visual Studio扩展使构建失败

通过Visual Studio Code提交的扩展消息?

如何通过命令行检查Visual Studio更新?

尝试通过 c++ 程序中的 system() 函数使用 cl Visual Studio 命令进行命令行构建时,vcvars32.bat 出现问题

Visual Studio 用于通过 msbuild 命令行执行增量构建的构建目标

Visual Studio 2017:通过命令行调用打开并构建解决方案

如何从命令行安装Visual Studio Code扩展

在Visual Studio Code中进行编译和调试时获取随机命令行参数

是否可以通过编程方式安装Visual Studio扩展?

通过扩展API在Visual Studio Code中更改光标外观

通过CDN进行Bootstrap的Visual Studio智能感知

是否可以通过Visual Studio Code创建Windows服务?

Visual Studio:通过拉取请求创建和删除存储

通过PowerShell脚本完成Visual Studio 17构建失败

如何通过Visual Studio构建可移植程序

通过 Visual Studio 在线设置编码 UI 测试的远程执行

通过TFS在Visual Studio中运行Jasmine单元测试

无法通过Visual Studio Code在本地运行Azure持久功能

Visual Studio Code无法通过VNC在Ubuntu 16.04上打开

我如何通过Visual Studio Code编译C ++文件

通过命令行构建Android Studio应用

Visual Studio 2017 命令行构建比 IDE 慢

Visual Studio发布构建事件命令行“用于”语法

如何从命令行安装Visual Studio Gallery扩展

从命令行禁用Visual Studio扩展

Visual Studio Code golang 扩展

在Visual Studio中使用命令行参数进行调试