草庐IT

monkey-testing

全部标签

python - 运行 py.test 时出现错误 ImportMismatchError

当我在本地运行测试时,它工作正常,但是在创建docker并在容器内运行后,我遇到了错误。/usr/local/lib/python3.5/site-packages/_pytest/config.py:325:in_getconftestmodulesreturnself._path2confmods[path]EKeyError:local('/apis/db/tests')Duringhandlingoftheaboveexception,anotherexceptionoccurred:/usr/local/lib/python3.5/site-packages/_pytest/

testing - 如何测试 Golang channel /go-routines

我有一个包含一个字节数据的类型,并使用一个channel将新数据发布到那里。其他代码可以使用Read函数读取最后写入的数据字节。编辑:对于实际的可运行代码,请参阅https://github.com/ariejan/i6502/pull/3特别是文件acia6551.go和acia6551_test.go。测试结果可以在这里查看:https://travis-ci.org/ariejan/i6502/jobs/32862705我有以下内容://Emulatesaserialinterfacechipofsomekind.typeUnitstruct{//Channelusedforot

testing - 使用 Go 的 "testing/quick"包生成随机数字和字母字符串

几天来我一直在为这个问题绞尽脑汁,似乎无法弄明白。也许它非常明显,但我似乎无法发现它。我已经阅读了unicode、UTF-8、UTF-16、规范化等的所有基础知识,但无济于事。希望有人能在这里帮助我......我正在使用testing/quick中的Go的Value函数包为我的数据结构中的字段生成随机值,以实现Generatorinterface对于有问题的结构。具体来说,给定一个Metadata结构,我将实现定义如下:func(m*Metadata)Generate(r*rand.Rand,sizeint)(valuereflect.Value){value=reflect.Valu

unit-testing - 如何在 Golang 测试文件中构建导入

我在main.go中定义了无法在main_test.go中访问的函数。但是,在一些在线教程中,我看到函数是可访问的:我想了解其中的区别,以及如何以惯用的方式构建这些函数。具体来说,我有一个包含多个二进制文件的应用程序:myapp/cmd/app/main.gomyapp/cmd/cli/main.go我目前在main.go文件的funcmain中运行了很多简单的单元测试逻辑。我只是测试单个函数并让它们打印输出,如果我能避免的话,我不会尝试调用“测试”套件的全部功能。由于此时我在main.go顶部的测试太长了,我想将它们移动到特定的测试文件中,例如:myapp/cmd/app/main_

unit-testing - 使 os.Stat 抛出错误,使 IsNotExist 返回 false

我正在尝试测试以下分支:if_,err:=os.Stat(path);err!=nil{ifos.IsNotExist(err){continue}returnerrors.File().AddDetails(err)}显然,如果path不存在,os.Stat将抛出错误。ReadingtheGolangdocumentation不返回有关os.Stat可能返回的错误的详细信息。有没有办法让os.Stat抛出另一种错误? 最佳答案 您可以通过传递无效的文件名导致错误,例如IsNotExist返回false。packagemainimp

testing - 如果直接访问其字段,如何模拟结构

我正在编写一个充当GithubAPI客户端的程序。我用https://github.com/google/go-github访问API。我有一个函数接受github.Client作为参数之一,并使用它从拉取请求中检索提交。我想用一些假数据测试这个功能。在此处的文章中:https://nathanleclaire.com/blog/2015/10/10/interfaces-and-composition-for-effective-unit-testing-in-golang/我读到,我应该创建一个将由github客户端实现的接口(interface),然后在我的测试中,创建一个也将实

unit-testing - 仅为 _test.go 文件定义结构

我有以下文件树结构:-app/---tool/-----/tool_test.go-----/tool.go-----/proto/proto.go-----/proto/proto_test.go我需要使用一个(虚拟)结构在tool_test.go和proto_test.go中实现一个接口(interface):typeDummyRetrieverstruct{}func(dummy*DummyRetriever)Retrieve(namestring)(string,error){return"",nil}如果我只在tool_test.go中定义它,我无法在proto_test.g

unit-testing - 如何运行 'go test' 并包含单元测试文件但排除其他测试文件

这个问题在这里已经有了答案:SeparatingunittestsandintegrationtestsinGo(6个答案)关闭5年前。我正在尝试在现有的Go项目上自动运行单元测试。它已经有很多现有的测试,这些测试可以做非单元测试的事情,比如联系外部服务和写入数据库。我想使用命名约定从自动化中排除这些测试文件。假设项目的结构是这样的:gopath/|-package1.go|-package1_unit_test.go|-package1_e2e_test.go|-package2/|-package2.go|-package2_unit_test.go|-package2_e2e_t

go - 调用 TCP : Protocol not available go webassembly test

尝试去测试一个触发POST请求的web-assembly函数。收到以下错误:firePing_test.go:40:ERRORONPOSTREQUEST:Posthttps://not-the-real-api.execute-api.us-east-1.amazonaws.com/testing:dialtcp:Protocolnotavailable运行:Ubuntu18.04.2长期支持版去版本go1.12.2linux/amd64我已经测试过该函数是有效的,并且在chrome中执行时会发送请求。为linux/amd64编译时测试也通过。问题函数://FirePingfiresa

testing - 如何着手测试 go routines?

此问题的一个示例是当用户创建资源并删除资源时。我们将执行该操作并增加(减少)计数器缓存。在测试中,有时会出现计数器缓存未被go例程更新的竞争条件。编辑:抱歉造成混淆,澄清一下:计数器缓存不在内存中,它实际上是数据库中的一个字段。竞争条件不是内存中的变量,实际上是goroutine写入数据库本身可能很慢!我目前在操作后使用1秒休眠,以确保在测试计数器缓存之前计数器缓存已更新。有没有另一种方法可以测试go例程,而无需任意1秒sleep来等待go例程完成?干杯 最佳答案 Intesting,thereissometimesaracecon