Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

xgo 更好的集成 goland vscode 这种 IDE 工具 #205

Open
alpha-baby opened this issue Jun 15, 2024 · 7 comments
Open

xgo 更好的集成 goland vscode 这种 IDE 工具 #205

alpha-baby opened this issue Jun 15, 2024 · 7 comments

Comments

@alpha-baby
Copy link
Contributor

我简单的翻了一下 xgo 的源码,xgo 大概的原理就是:

  1. 使用了 golang compile 的 -toolexec
  2. 重新拷贝了 GOROOT下面的代码到 ~/.xgo/go-instrument/go1.22.1_Us_fu_.x_go_go_go_61604acb (go1.22.1_Us_fu_.x_go_go_go_61604acb 是自动生成的,每个人的电脑应该是不一样的,可以进入到目录 ~/.xgo/go-instrument/ 中去查看)
  3. 然后对 go 的很多源文件打了一些补丁
  4. 然后再重新编译 go 的 compile
  5. 然后再增加和修改了一些 环境变量
  6. 然后再运行 go build 或者 go test 等去编译用户的业务代码

以上的过程可以通过去 debug xgo 的代码去梳理出来,然后也可以执行 xgo 的时候加上参数xgo test --log-debug --debug 打印出详细的日志

goland 中设置配置

目前来说如果你想更友好的在 goland 中使用 xgo ,你可以修改 Settings->GO->GOROOT 修改成 上面 xgo 给你生成出来的 goroot

例如我这里把他改成了:

image

然后再修改 goland 的运行配置(Run/Debug Configurations)

添加环境变量

image

添加编译参数

image

上面截图中的配置都不需要从图中抄过去,而是在命令行中使用下 xgo 去跑一下本地的单测,在跑的时候加上 --log-debug --debug 参数,更多的参数可以通过运行 xgo help 来查看

总结

说实话这样配置一遍挺复杂的,但是在 vscode 中使用 xgo 应该是比较容易的,运维 vscode 中可以自定义编译命令,不详细展开了,如果你已经是使用 vscode 的老手,应该知道我在讲什么。

希望作者重新考虑下怎么在 goland 中更方便快捷的使用 xgo ,如果大家有更好的办法希望留言!

@xhd2015
Copy link
Owner

xhd2015 commented Jun 15, 2024

是的,这个是我们希望解决的问题。目前的做法是运行xgo e来打开一个统一的test管理工具,如下图所示:

xgo e

使用这个工具执行用例的时候,默认以xgo test来执行测试用例

image

IDE的集成,目前还没有特别好的办法。

@alpha-baby
Copy link
Contributor Author

IDE 集成的话,如果是想让用户用起来最爽的就是开发一个 xgo 的 vscode 或者 goland 插件,

我刚刚试了试 xgo e 还是挺好用的,但是看起来这里有个 bug,这个测试完成后并没有在左边显示完成,也没有显示测试失败

image

@xhd2015
Copy link
Owner

xhd2015 commented Jun 15, 2024

目前的做法是运行xgo e来打开一个统一的test管理

感谢反馈,这个问题我之前也有记录:#198

我抽时间修复一下,最近工作上的事情比较忙,没来得及搞。

test-explorer的源码:https://github.com/xhd2015/coverage-visualizer/blob/master/src/mock-editor/TestingExplorer/xgo/XgoTestingExplorer.tsx

@xhd2015
Copy link
Owner

xhd2015 commented Jun 15, 2024

IDE 集成的话,如果是想让用户用起来最爽的就是开发一个 xgo 的 vscode 或者 goland 插件,

关于插件,目前是希望对vscode-go提一个PR,能够支持指定xgo进行测试。
之前ginko也有一个类似issue:onsi/ginkgo#1400

@alpha-baby
Copy link
Contributor Author

IDE 集成的话,如果是想让用户用起来最爽的就是开发一个 xgo 的 vscode 或者 goland 插件,

关于插件,目前是希望对vscode-go提一个PR,能够支持指定xgo进行测试。 之前ginko也有一个类似issue:onsi/ginkgo#1400

想法是比较好的,但是我感觉进 vscode-go 的官方插件是比较难的,因为 ginkgo xgo 这些是第三方开发工具,对于 go 团队来说比较难维护,除非 ginkgo xgo 这些成为了 go 官方的工具。但是我觉得这个更难。我还是觉得自己搞插件这个路子更好走一些。

@xhd2015
Copy link
Owner

xhd2015 commented Jun 15, 2024

也是个方向,可以基于当前xgo的前端代码来做

This was referenced Jun 18, 2024
@xhd2015
Copy link
Owner

xhd2015 commented Jun 23, 2024

@alpha-baby xgo 1.0.41发布了,这个版本的xgo e体验会好很多

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants