草庐IT

run_test

全部标签

Golang Dockerfile : Unable to find packages in docker build but runs normally

我的golang微服务项目的多阶段构建有以下dockerfile设置FROMgolang:alpineasbuilderRUNapk--no-cacheaddgitWORKDIR/app/vessel-serviceCOPY..RUNgomoddownloadRUNCGO_ENABLED=0GOOS=linuxgobuild-a-installsuffixcgo-ovessel-service#SecondStage...我的main.go中有以下导入import("context""errors""fmt"pb"github.com/thededlier/go-micro-shipp

unit-testing - 如何测试 ioutil.ReadFile 和 os.Stat?

我有以下功能:funcGetDataFromFile(pathstring)([]byte,error){_,err:=os.Stat(path)iferr!=nil{returnnil,err}data,err:=ioutil.ReadFile(path)iferr!=nil{returnnil,err}returndata,nil}我想在函数ioutil.ReadFile和os.Stat(path)抛出错误时对其进行测试。我知道我可以为os.Stat(path)创建不存在的路径,但是如何在没有“解决方法”和猜测函数工作方式的情况下测试此类函数?问候。 最

testing - 当测试文件在模块中时,如何运行 `go test`?

当您将一个模块引入到您的项目中时,您如何在该模块中运行测试用例?即我做了:gogetmy.repo.com/repo/mymodule然后尝试测试其中的内容:server>gotestsrc/my.repo.com/repo/mymodule/my_test.go#command-line-argumentssrc/my.repo.com/repo/mymodule/article_test.go:4:2:cannotfindpackage"mymodule"inanyof:我们是否应该单独检查我们的模块并以这种方式进行测试?我不知道该怎么办。似乎当我gorun它知道如何找到我获取的模

go - 如何在 google cloud run for firebase 中创建上下文对象

我正在尝试创建一个上下文对象,以便我可以从cloudrun连接到firestore,但是,我在网上找到的所有示例基本上都说我需要一个上下文对象,我在网上找到的示例通常如下所示:ctx:=context.Background()client,err:=firestore.NewClient(ctx,"projectID")iferr!=nil{fail(w,err.Error())//TODO:Handleerror.}您可以在以下位置找到这些示例:https://godoc.org/cloud.google.com/go/firestore#example-NewClient此示例中没

unit-testing - 是否可以对我的包不导入特定包进行单元测试?

我想确保我的Go包使用“dal”包提供的var实例,并且不会意外地直接导入和使用数据库访问包。我想我可以在源代码上进行正则表达式搜索,但我想知道是否有办法通过标准Go测试来确保规则?只是想知道我要做什么:接口(interface)包:packagedaltypeUserDalinterface{GetUser(idint)User}实现包:packagedal_db_specificimport("some_db""dal")typeUserDalDbSpecificstruct{}func(_UserDalDbSpecific)GetUser(idint)User{some_db.e

go - 关于 "sudo go run main.go"

我在我的Ubuntu16.04中使用Go,我设置了GOPATH,GOROOT并成功运行了简单的代码。现在我想通过“gopacket”抓包,但是需要sudo/root权限。我执行命令:sudogorunmain.go,它回显错误:"exec:go:excutablefilenotfoundin$PATH"我用谷歌搜索并编辑文件/etc/sudoders并将行"Defaultsenv_reset"更改为"Defaults!env_reset",但是它不起作用...你能帮帮我吗? 最佳答案 您的环境变量没有为您的根用户设置。不要尝试运行s

testing - 如何仅在测试时允许一个包访问另一个包的未导出数据?

在TheGoProgrammingLanguage的11.2.4节中,有一个外部测试通过声明访问fmt.isSpace()的示例fmt的export_test.go文件中的IsSpace。这似乎是完美的解决方案,所以这就是我所做的:a/a.go:packageavarxintfuncSet(vint){x=v}a/a_test.go:packageaimport"testing"funcTestSet(t*testing.T){Set(42)ifx!=42{t.Errorf("x==%d(expected42)",x)}}funcGet()int{returnx}(在a/中运行gote

testing - 如何记录测试时间

我写了两个函数,现在我很想知道哪个更快。我怎样才能找出哪个更快?如何通过测试找出哪个更快?是否为此提供一个计时器? 最佳答案 更好的是,Go提供了内置的基准测试和测试功能!创建一个名为something_test.go的文件(必须有_test部分)。funcBenchmarkFunc1(b*testing.B){fori:=0;i然后只需运行:gotest-bench=。-benchmem它将打印每个函数花费的时间和内存使用/分配。引用:http://golang.org/pkg/testing/http://dave.cheney

testing - golang TestMain() 函数设置测试无法访问的变量

我有以下TestMain函数:funcTestMain(m*testing.M){db:="[working_db_connection]"dbInstance,_:=InitializeRepo(db,2)runTests:=m.Run()os.Exit(runTests)}和下面的示例测试funcTestSomeFeature(t*testing.T){fmt.Println(dbInstance)}函数TestSomeFeature确实运行,但表示dbInstance未定义。为什么这不能访问变量?从示例中,我看到使用此语法访问TestMain中的变量et。

testing - 测试 '-timeout 0' 未反射(reflect)在执行中

我正在使用Go1.9.2版本并使用-timeout0标志调用禁用超时的测试。gotestmy_module-runTestModule-v--race-timeout0但是测试执行在默认超时10m后超时。***Testkilled:rantoolong(10m0s). 最佳答案 它是test.timeout即gotestmy_module-runTestModule-v--race-test.timeout0 关于testing-测试'-timeout0'未反射(reflect)在执行中