草庐IT

test_app

全部标签

unit-testing - 为期望按下的键继续的函数编写 Golang 单元测试

我在Golang中有一个这样的函数:funcExit(codeint){.........keyboard.Open()deferkeyboard.Close()keyboard.GetKey()PrintAndLogInfo("\nBye.")os.Exit(code)}我正在使用以下库来使用此键盘功能github.com/eiannone/keyboard我想为此功能编写单元测试。但是,keyboard.GetKey()需要按下一个键。也许正因为如此,当我运行调用函数Exit的测试时,它失败并显示错误:panic:函数GetKey()应该在Open()之后调用[已恢复]panic:

api - 如何从 "test"包测试 Golang 中的主包?

我有一个用Golang编写的简单程序。它是一个API。所以在项目文件夹中,有一个名为cmd的文件夹,其中包含我的main包(用于初始化应用程序并定义API的端点)。还有一个以我的程序命名的文件夹,其中包含同样以我的程序命名的包中的多个文件。这个包作为执行所有必要查询的模型,并包含我定义的所有类型。我还创建了一个名为test的文件夹。它包含名为test的包下的所有测试文件。问题是要运行测试,我必须访问我的主包!有没有办法在Golang中做到这一点?我尝试简单地使用import"cmd/main"但当然它不起作用。我也有一个想法。也许我可以将所有初始化函数(在cmd文件夹中)移动到以我的程

google-app-engine - 关于获取datastore的Cursor行为的问题

我有一个关于获取Cursor的问题目标函数:https://godoc.org/google.golang.org/appengine/datastore#Iterator.Cursor从下面的代码可以看出,在获取Cursor时设置了偏移量https://github.com/golang/appengine/blob/master/datastore/query.go#L702-L705当我使用GCP控制台的堆栈跟踪执行此函数时检查结果时,Insights显示警告Issue:Useofoffsetindatastorequeries.Description:Yourappmade1r

google-app-engine - Cloud Datastore 客户端库与 App Engine Go Standard 上的 App Engine SDK

在编写GoAppEngine标准应用程序时,过去的情况是您必须使用AppEngineSDK访问数据存储。然而,最近(从Go1.11开始?),如果你只使用CloudDatastoreClientLibrary似乎就可以了。.在AppEngineStandard上使用CloudDatastore客户端库访问数据存储区是否有缺点?(除了一些额外的配置以使开发应用程序服务器使用模拟器)。优点是它可以为其他环境实现代码重用。 最佳答案 AppEngineStandardforGo1.11在新的第二代(测试版)运行时上运行,它没有第一代的限制,

go - 如何处理 'go test all' 中的预期+无关故障?

我正在使用NPM来管理使用go1.11模块的go包的构建/测试/版本生命周期。在发布之前,我想检查“一切”,包括模块,所以我运行:gotestall(在所有包含的模块中运行测试)。问题是go1.11.5中的标准os包(至少)在某些Mac版本/环境(包括我的)上失败。这没关系,与我的目的无关,因为失败发生在我不使用的功能中。但是,这会导致发布过程失败,因为gotest以非零状态退出。关于如何处理这个问题有什么建议吗?如果有一种方法可以为我本地测试的调用树中的函数运行所有测试,那就太好了(gotestall-relevant)。或者,如果我可以命名并跳过测试,那也很好。我知道-run标志,

go - 无法理解 go test -race : RACE: DATA WARNING stack trace

我在测试我的项目时遇到了DATARACE警告,想知道是否有人愿意帮助我破译这个问题。我过去从未尝试过测试go例程,我发现很难全神贯注于数据竞赛。我在描述中提供了指向未解决问题的链接,并在问题描述中提供了跟踪。我真的很感激一些帮助,只是从学习调试类似问题和为将来的go例程编写更好的测试方面。https://github.com/nitishm/vegeta-server/issues/52下面还提供了跟踪的片段===RUNTest_dispatcher_Cancel_Error_completedINFO[0000]creatingnewdispatchercomponent=dispa

unit-testing - 如何测试/重构测试调用 http.ListenAndServe 的函数

我正在学习go并且正在开发一个简单的服务,该服务从队列中提取一些数据并将其保存在数据库中。它还运行一个网络服务器以允许抓取数据。现在我有两个go文件(为简洁起见省略了一些文本):funcmain(){parseConfig()s:=&Service{ServiceConfig:config}err:=s.Run()iferr!=nil{panic(err)}}然后是服务的定义(为简洁起见,再次省略了一些部分):func(s*Service)Run()error{iferr:=s.validate();err!=nil{returnerr}iferr:=s.initDB();err!=n

google-app-engine - App Engine 任务队列创建一批队列项并在 go lang 中每 10 秒执行一次

由于使用内部代码的第三方API的某些限制(第三方API每分钟有1000个API调用),我想创建一批队列项并每10秒执行一次。但我不知道如何使用任务队列在AppEngine中实现给定的要求。或者可以使用任务队列推送创建批处理吗? 最佳答案 TaskQueueTask有一个Delaytime.Duration以及ETAtime.Time字段,可用于创建和延迟任务.相信你可以重用thetopexample但在调用taskqueue.Add(c,t,"")之前设置其中一个字段 关于google-

python - 在 Google App Engine 中使用 ctypes 来使用二进制文件?

我试图在GoLang和Python之间建立接口(interface)。我长期以来一直是Python的粉丝,并且喜欢使用它。但随着时间的推移,我发现它对进行计算等非常不利。尤其是当可能涉及大型数据集时。我开始学习golang主要是因为它的速度,并考虑在我的应用程序中将其用作库。在GoLang中编写密集代码,然后使用Python库中的方法在Python中编写漂亮的高级应用程序代码。完成第一个原型(prototype)后,我在GAE中部署了我的代码。不幸的是我撞到了这个fromctypesimport*File"/base/alloc/tmpfs/dynamic_runtimes/pytho

unit-testing - Uber Cadence 事件的单元测试上下文

我正在为使用UUID从联系人服务检索联系人的节奏事件功能编写单元测试。我想知道我应该将什么上下文传递给节奏事件。activity.Register(GetContactActivityFunc)funcGetContactActivityFunc(ctxcontext.Context,inputContactBbInput)(ContactBbOutput,error){...}这是测试函数。funcTestGetContactActivityFunc(t*testing.T){mockCSInterface:=&mocks.Interface{}csClient:=outbound.