草庐IT

DEBUGGING

全部标签

unit-testing - 如何避免 Go 中的重复测试?

既然去doesnotallowtodebugtestsinsomeIDEs(另请参见issue)我不得不在我的queueimplementation中编写两次测试。.里面一次main.go,第二次-里面queue_test.go我将VisualStudioCode与delve结合使用。调试Go测试而不复制它们的最佳IDE或模式是什么? 最佳答案 我认为您的IDE无法调试测试。尝试不同的东西。例如,截至今天,Gogland的抢先体验版在调试方面工作得很好,即使是测试。它使用Delve引擎盖下的调试器,所以你甚至可以求助于runthed

macos - Goland 在调试时不接受标准输入

在macOS上使用Goland进行调试时,我的程序等待来自标准输入的输入。我可以在控制台中输入并按下回车键,但输入没有传递到我的程序。就像在文本编辑器中输入一样。我可以输入,按回车键,删除我刚刚做的一切。我的程序没有得到任何传递给它的信息。从控制台使用dlv进行调试时,我也遇到了这种行为,但是,我发现了关于如何在这种情况下解决它的讨论:https://github.com/go-delve/delve/issues/1274#issuecomment-406969034我也看到了vscode的类似修复:https://github.com/Microsoft/vscode-go/iss

macos - Goland 在调试时不接受标准输入

在macOS上使用Goland进行调试时,我的程序等待来自标准输入的输入。我可以在控制台中输入并按下回车键,但输入没有传递到我的程序。就像在文本编辑器中输入一样。我可以输入,按回车键,删除我刚刚做的一切。我的程序没有得到任何传递给它的信息。从控制台使用dlv进行调试时,我也遇到了这种行为,但是,我发现了关于如何在这种情况下解决它的讨论:https://github.com/go-delve/delve/issues/1274#issuecomment-406969034我也看到了vscode的类似修复:https://github.com/Microsoft/vscode-go/iss

debugging - 尝试使用 gdb(和 cgdb)在 go(golang)中调试程序,但似乎存在问题

我知道go团队不会很好地支持GDB。但是,它有时似乎有效,所以在我放弃之前,我想看看它是否适用于该程序。我试图用它来调试我在macosxmavericks中的程序,不幸的是我无法在运行时检查我的程序。我使用的是macosxmavericks10.9.4,我的go版本是goversiongo1.2.2darwin/amd64。如果我在我的二进制文件上执行gdbmy_binary然后尝试运行它会发生什么:FindtheGDBmanualandotherdocumentationresourcesonlineat:.Forhelp,type"help".Type"aproposword"to

debugging - 尝试使用 gdb(和 cgdb)在 go(golang)中调试程序,但似乎存在问题

我知道go团队不会很好地支持GDB。但是,它有时似乎有效,所以在我放弃之前,我想看看它是否适用于该程序。我试图用它来调试我在macosxmavericks中的程序,不幸的是我无法在运行时检查我的程序。我使用的是macosxmavericks10.9.4,我的go版本是goversiongo1.2.2darwin/amd64。如果我在我的二进制文件上执行gdbmy_binary然后尝试运行它会发生什么:FindtheGDBmanualandotherdocumentationresourcesonlineat:.Forhelp,type"help".Type"aproposword"to

debugging - 当变量的值改变时中断

(1)有没有办法在变量值改变时停止程序的执行?当然,我知道我们可以在某些行设置断点,但我只想设置一个变量,当它发生变化时,停止程序进行调试。(2)我还想查看程序的执行流程(通过记录到文件/在屏幕上打印)。有什么方法可以让我运行我的程序并看到相同的结果(无需逐行执行)?请考虑以下示例(https://play.golang.org/p/vOvW4GAM0j)packagemainimport("fmt""math/rand""time")funcmain(){rand.Seed(time.Now().Unix())r:=rand.Intn(100)variintifr%2==0{i=2}

debugging - 当变量的值改变时中断

(1)有没有办法在变量值改变时停止程序的执行?当然,我知道我们可以在某些行设置断点,但我只想设置一个变量,当它发生变化时,停止程序进行调试。(2)我还想查看程序的执行流程(通过记录到文件/在屏幕上打印)。有什么方法可以让我运行我的程序并看到相同的结果(无需逐行执行)?请考虑以下示例(https://play.golang.org/p/vOvW4GAM0j)packagemainimport("fmt""math/rand""time")funcmain(){rand.Seed(time.Now().Unix())r:=rand.Intn(100)variintifr%2==0{i=2}

debugging - Go - 编译一组函数时出错

我正在尝试实现一个非常简单的测试函数来验证我的欧拉问题解决方案的结果。在下面的代码中,我创建了一个slice映射,在索引0上,我调用了返回整数的函数,在索引1上,调用了我期望从该函数获得的结果。packageeulerimport"testing"funcTestEulers(t*testing.T){tests:=map[string][]int{"Euler1":{Euler1(),233168},"Euler2":{Euler2(),4613732},"Euler3":{Euler3(),6857},"Euler4":{Euler4(),906609},"Euler5":{Eul

debugging - Go - 编译一组函数时出错

我正在尝试实现一个非常简单的测试函数来验证我的欧拉问题解决方案的结果。在下面的代码中,我创建了一个slice映射,在索引0上,我调用了返回整数的函数,在索引1上,调用了我期望从该函数获得的结果。packageeulerimport"testing"funcTestEulers(t*testing.T){tests:=map[string][]int{"Euler1":{Euler1(),233168},"Euler2":{Euler2(),4613732},"Euler3":{Euler3(),6857},"Euler4":{Euler4(),906609},"Euler5":{Eul

debugging - 使用 go 扩展在 visual studio code 中输入数据

我尝试设置visualstudio代码以使用go语言进行开发。我安装了lukehoban的goextension,以及来自以下的开发工具:github.com/alecthomas/gometalinter和github.com/derekparker/delve/cmd/dlvide没有显示任何错误。当我运行以下代码时:packagemainimport"fmt"funcmain(){fmt.Print("Enteranumber:")varinputfloat64fmt.Scanf("%f\n",&input)output:=input*2fmt.Println(output)}我