我已在Windows 10计算机上安装了以下软件:
我已经在环境变量中设置了GOROOT和GOPATH。我的GOPATH具有以下三个文件夹:
在src下,我创建了一个基本的sam-app。它会自动创建main_test.go文件。当我执行“调试测试”时,UI中没有断点。但是,我能够在命令行中使用dlv进行调试。
我在launch.json中尝试了不同的配置。他们都没有工作。在我朋友的机器上,即使没有配置,UI调试也可以工作
在VS Code设置中->节点调试->自动附加->我已将'on'设置为
我已关闭VS Code,然后重新打开。它不起作用
我已经以管理员身份打开了VS Code,它也没有起作用
我已经卸载并重新安装了VS Code
我已经卸载并重新安装了Golang
我已经在VS Code中安装了Go扩展程序
package main
import (
"fmt"
"net/http"
"net/http/httptest"
"testing"
"github.com/aws/aws-lambda-go/events"
)
func TestHandler(t *testing.T) {
t.Run("Unable to get IP", func(t *testing.T) {
DefaultHTTPGetAddress = "http://127.0.0.1:12345"
_, err := handler(events.APIGatewayProxyRequest{})
if err == nil {
t.Fatal("Error failed to trigger with an invalid request")
}
})
t.Run("Non 200 Response", func(t *testing.T) {
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(500)
}))
defer ts.Close()
DefaultHTTPGetAddress = ts.URL
_, err := handler(events.APIGatewayProxyRequest{})
if err != nil && err.Error() != ErrNon200Response.Error() {
t.Fatalf("Error failed to trigger with an invalid HTTP response: %v", err)
}
})
t.Run("Unable decode IP", func(t *testing.T) {
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(500)
}))
defer ts.Close()
DefaultHTTPGetAddress = ts.URL
_, err := handler(events.APIGatewayProxyRequest{})
if err == nil {
t.Fatal("Error failed to trigger with an invalid HTTP response")
}
})
t.Run("Successful Request", func(t *testing.T) {
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(200)
fmt.Fprintf(w, "127.0.0.1")
}))
defer ts.Close()
DefaultHTTPGetAddress = ts.URL
_, err := handler(events.APIGatewayProxyRequest{})
if err != nil {
t.Fatal("Everything should be ok")
}
})
}
我希望在调试main.go或main_test.go时在UI中找到断点。
更新:
我将VS代码降级到1.30.2并安装了Go扩展和Delve之后,调试时出现以下错误:
“调试适配器进程意外终止(读取错误)”
答案 0 :(得分:0)
我如下解决了该问题:
仅删除了'%USERPROFILE%\。vscode \ extensions \ ms-vscode.go-0.11.4'文件夹并重新安装了Go扩展名-无效
删除了整个'%USERPROFILE%\。vscode'文件夹并重新安装了Go扩展名-起作用了:)
某些其他扩展名是错误的,因此Go调试失败。清理所有扩展程序即可修复它。
希望,这可能对其他人有用。