草庐IT

acceptance-testing

全部标签

testing - 为什么 GoConvey 测试失败并显示错误代码 0?

关闭。这个问题需要debuggingdetails.它目前不接受答案。编辑问题以包含desiredbehavior,aspecificproblemorerror,andtheshortestcodenecessarytoreproducetheproblem.这将有助于其他人回答问题。关闭4年前。Improvethisquestion我需要在构建过程中运行GoConvey测试我如何确保gotest以错误退出代码(非0)退出?

testing - 在非主程序包中运行类似主程序的程序

我们有一个包含大量复杂测试的包。作为测试套件的一部分,它们在构建等上运行。funcTestFunc(t*testing.T){//lotsofsetupstuffanddefiningsuccessconditionsresult:=SystemModel.Run()}现在,对于其中一个测试,我想介绍某种前端,它可以让我调试一些东西。它不是真正的测试,而是调试工具。为此,我只想运行相同的测试,但使用Builder模式:funcTestFuncWithFrontend(t*testing.T){//lotsofsetupstuffanddefiningsuccessconditionsr

Go test <function> 返回 undefined : <function>

尝试运行“gotestsum_test.go”返回错误:./sum_test.go:18:13:未定义:SumInt8FAIL命令行参数[构建失败]我正在学习golang入门类(class)。我们的老师分发了一个代码文件sum.go和一个测试文件sum_test.go。尝试在sum_test.go上运行“gotest”会返回上述错误。代码在我们老师的mac上运行良好,但他在重现问题时遇到了困难。这是我的环境设置:https://pastebin.com/HcuNVcAF求和packagesumfuncSumInt8(a,bint8)int8{returna+b}funcSumFloat

unit-testing - 如何测试 bytes.ErrTooLarge panic 错误

我想在bytes.Buffer.Write方法上模拟bytes.ErrTooLargepanic错误并测试panic处理。我试图写入无限量的数据以超过内存,但随后整个测试崩溃了。还有哪些选择? 最佳答案 听起来像是模拟对象的工作。在测试期间使用此(badBuffer)代替bytes.Buffer。typebadBufferbytes.Bufferfunc(b*badBuffer)Write(p[]byte)(nint,errerror){panic(bytes.ErrTooLarge)}

unit-testing - 单元测试具有 ORM 交互的 Go 函数

我写了一个函数:funcAllItems(whttp.ResponseWriter,r*http.Request){db,err:=gorm.Open("sqlite3","test.db")iferr!=nil{panic("failedtoconnectdatabase")}deferdb.Close()varitems[]Itemdb.Find(&items)fmt.Println("{}",items)json.NewEncoder(w).Encode(items)}我想对此进行单元测试。理想情况下,单元测试意味着需要测试函数的每一行。我不确定我应该如何测试数据库连接是否打开以

unit-testing - 如何在不创建实际网络连接的情况下测试依赖于 net.Conn 的代码?

如果我有适用于net.Conn的代码,我如何在不实际创建与本地主机的网络连接的情况下为其编写测试?我在网上没有看到这个问题的解决方案;人们似乎要么忽略它(不进行测试),要么编写无法并行运行的测试(即使用实际的网络连接,这会耗尽端口),要么使用io.Pipe。不过,net.Conn定义了SetReadDeadline、SetWriteDeadline;而io.Pipe没有。net.Pipe也没有,尽管表面上声称要实现该接口(interface),但它只是通过以下方式实现:func(p*pipe)SetDeadline(ttime.Time)error{return&OpError{Op:

go - travis-ci在使用go test时需要root权限,如何设置?

我有Go测试文件,它需要root权限才能运行它(去测试)。Travisci中如何设置?这是yml:language:gosudo:requiredgo:-tipnotifications:email:on_success:changeon_failure:always在gitpush之后,travis-cibuild使用默认配置失败。 最佳答案 在travis中你可以使用sudo所以如果你想以root权限运行你的测试,改变脚本部分:script:sudo-Eenv"PATH=$PATH"gotest./...或者如果您使用的是Mak

unit-testing - 如何获得文件夹的全局测试覆盖率

显示代码覆盖率时,gotest显示每个包的代码覆盖率(百分比)。有没有办法显示一个考虑了所有子文件夹(子包)的文件夹的摘要?我想要的是整个项目的全局代码覆盖率,一个显示文件夹和所有子文件夹的代码覆盖率的数字。 最佳答案 运行后:gotest--coverprofile=coverage.out./...运行:gotoolcover-func=coverage.out您将在结果末尾看到总百分比 关于unit-testing-如何获得文件夹的全局测试覆盖率,我们在StackOverflow上

unit-testing - 我可以使用嵌套界面模拟库代码吗?

这个问题在这里已经有了答案:HowcanImockmultipletypeswhenthesignatureofaconcretemethodreferstoanotherconcretetype,notitsinterface?(1个回答)关闭3年前。我正在尝试在我的go代码中的测试中模拟第3方库。但是我无法编译我所采用的方法。如果我想模拟T2.M2的结果,有什么方法可以使它工作,或者我可以采用另一种方法吗?packagemainimport("fmt")//TwotypesinalibrarythatIdonthavecontrolovertypeT1struct{}func(T1

testing - 如何在测试中将模型与 Controller 分开?

所以我想在测试中将Controller与模型隔离开来,这样我就可以在出现问题时轻松解决问题。之前,我只是用模拟数据访问端点,但很难排除故障,因为测试从路由器一直运行到数据存储。所以我想也许我会为每个Controller(和模型)创建两个版本(MockController与Controller),并根据模式变量的值使用一个。简而言之,这就是我计划实现它的方式。constmodestring="test"//UserModelInterfaceistheInterfaceforUserModeltypeUserModelInterfaceinterface{Get()}//UserCont