草庐IT

is_test_set

全部标签

unit-testing - 戈朗 : tests and working directory

我正在用Go为我的应用程序编写一些单元测试。但是测试失败了,因为它找不到配置文件。通常,二进制文件会在路径conf/*.conf下的工作目录中查找配置文件。我想浏览到有conf/的目录,在里面运行gotest就可以解决,但是还是报文件系统找不到路径指定。如何告诉gotest使用某个目录作为工作目录,以便测试可以实际执行? 最佳答案 您可以使用Caller获取当前测试源文件的路径,如下所示:packagesampleimport("testing""runtime""fmt")funcTestGetFilename(t*testing

unit-testing - 为从中读取的函数填充 os.Stdin

如何在我的测试中填充os.Stdin以获取使用扫描仪从中读取的函数?我使用以下函数通过扫描器请求用户命令行输入:funcuserInput()error{scanner:=bufio.NewScanner(os.Stdin)println("Whatisyourname?")scanner.Scan()username=scanner.Text()/*...*/}现在如何测试这种情况并模拟用户输入?以下示例不起作用。标准输入仍然是空的。funcTestUserInput(t*testing.T){varfile*os.Filefile.Write([]byte("Tom"))os.St

unit-testing - 无法在 golang : "unable to open database file [recovered]"-error 中打开 SQLite 数据库

我刚开始学习golang,不确定我的错误是概念上的还是语言上的。这很奇怪,因为只有在对我的代码进行单元测试时才会出现错误。如果我“去运行”一切正常。作为sqlite驱动程序,我使用mattn/go-sqlite3.这里是问题发生的地方:funcdbExec(command*string){db,err:=sql.Open("sqlite3",dbPath)//Pathanddriveraresetcorrecrtlydeferdb.Close()iferr!=nil{//Noproblemherepanic(err)}_,err=db.Exec(*command)iferr!=nil{

testing - 测试 Go 中未导出函数的命名约定

我无法追溯我是从哪里知道的,但通常情况下,如果有人为方法Foo编写测试,则相应的测试名为TestFoo。如果测试一个未导出的函数,比如foo,那么测试的名称应该是什么?我的问题来自这样一个事实,当要求为未导出的函数生成测试时,JetBrainsIDEforGo会生成类似Test_foo的内容。这种行为可能是有道理的,因为如果你有Foo并且它是未导出的counterpatfoo在同一个包中,你会想以某种方式对它们进行不同的测试(在至少对于IDE中的跳转测试功能而言)。那么在未导出的函数之后命名测试有什么约定吗?顺便说一句:Go的文档testing包说,如果是,则执行测试:anyfunct

go - 滑行更新失败 -> 无法将依赖项导出到 vendor 目录 : Error moving files: exit status 1. 输出 : Access is denied. 0 目录已移动

我关注了tutorialforglideusage.我执行了glideinit并成功创建了glide.yaml。发布,当我执行glideupdate时,出现以下错误。知道如何解决这个问题吗?我使用gogetgithub.com/Masterminds/glide安装了glide注意:我在Windows上通过GitBash终端执行这些操作。(不确定,但如果需要GOPATH值,则为/c/Users/aagoyal/eclipse-workspace-oxygen/GoPath/:/d/Edge_OSS/code/microservice/NE3SProto/。我的代码位于/d/DAAAS/

go - 模板和自定义函数;错误 : executing "templName" at <"funcName"> is not a define function

我得到了一些我用template.AddParseTree方法添加的文本,以便附加模板文本,但是有一个奇怪的行为,该方法应该像这样使用它:singleTemplate=anyTemplatetargetTemplate=*template.Must(targetTemplate.AddParseTree(e.Name,anyTemplate.Tree))但是当singleTemplate有一个函数时它不工作,出于一个奇怪的原因它只在我这样做时才工作singleTemplate=anyTemplatetargetTemplate=*template.Must(singleTemplate

go - IB API下单错误: cannot set VOL attribute on non-vol order

我正在尝试使用aGoportibAPI连接到我的InteractiveBrokersTrader工作站。我可以连接API并从中读取数据,但是当我尝试在模拟交易账户上下订单时,出现以下错误:&{1321Errorvalidatingrequest:-'bB':cause-CannotsetVOLattributeonnon-VOLorder.}但我不相信我在请求中设置了VOL属性。重现错误的最小程序是:packagemainimport("fmt""math""time""github.com/gofinance/ib")funcmain(){eng,err:=ib.NewEngine(

googleapi : Error 400: Dataset myProject:myDataset is still in use, resourceInUse

我正在尝试使用BigQueryAPI删除数据集。我使用BigQueryUI手动删除有问题的数据集没问题,但是当我使用API时,我看到以下错误:googleapi:Error400:DatasetmyProject:myDatasetisstillinuse,resourceInUse我已经检查过没有使用数据集的开放连接。这是用于删除数据集的代码:packagemainimport("log""context""golang.org/x/oauth2""golang.org/x/oauth2/jwt""google.golang.org/api/bigquery/v2")funcmain

testing - 测试后清理数据

我编写测试,在这个测试中我使用一些保存的数据文件、数据库记录等。我应该在测试结束前删除这些数据吗?例如,我检查userfinderfunc(IDint)User(*User){//myfinderhere}在测试之前,我必须为数据库创建User。那么,我是否应该做类似的事情deferdb.Clean()???与文件相同*os.File 最佳答案 为了让我们都在同一个页面上,有许多不同形式的测试。这里我们将考虑单元测试和集成测试。如果您进行单元测试,我希望仅使用模拟,而不与文件交互。所以我假设这是为了某种集成测试。Thisisalin

testing - 我如何在 Go 中查看或测试优雅重启?

我通过gin's提供HTTPhttps://github.com/fvbock/endless.我想看看与基本HTTP服务器的区别。我发送了syscall.SIGUSR1信号:syscall.Kill(getPid(),syscall.SIGUSR1)应用程序没有退出,但我无法检测到重启。我要做的是在toml配置文件更改时为应用程序初始化新配置。我的代码如下:packagemainimport("os""fmt""syscall""github.com/gin-gonic/gin""github.com/fvbock/endless""github.com/BurntSushi/tom