jjzjj

testMain

全部标签

go - 在多个实例上添加 testmain 前缀

我正在使用TestMain测试同一接口(interface)的多个实现funcTestMain(m*testing.M){setup1()code=m.Run()ifcode!=0{os.exit(code)}setup2()code=m.Run()ifcode!=0{os.exit(code)}}如果我在测试中遇到错误,就很难知道是哪个实现导致了失败在T子测试中,你像这样运行:t.run("testname",testfunc)有没有办法为主要测试添加前缀m.Run("name")//intuitivelywhatIshouldbeabletodo编辑:添加一些背景,因为看起来人们没

go - 在 TestMain 中使用 testing.T

我想运行一些测试用例,需要启动GRPC模拟服务器。为此,我正在使用gomock库。要启动服务器,我必须将类型为testing.T的变量传递给此函数-gomock.NewController().由于这是对所有测试用例的一种初始化,我想在TestMain中执行此操作。但是TestMain只能访问testing.M那么我该如何处理这种情况呢?在TestMain中创建一个新的testing.T结构?会成功吗? 最佳答案 听起来您正在寻找BeforeEach模式。您无权访问TestMain中的testing.T对象,因为这是在测试套件运行前

mongodb - 从未调用 TestMain m.Run() 后的拆解函数

我有以下测试代码,用于测试一些端点和数据库(mongoDB)功能。我正在使用mgo包,每次访问数据库时我都有一些抽象来获取新的session副本。packageresolvers_testimport(//variousimportshere)funcsetup(){log.Println("ENTERSETUP\n")customerIndex:=mgo.Index{Key:[]string{"email"},Unique:true,Background:true,Sparse:true,}session:=db.GetSession().Copy()defersession.Clo

go - TestMain 未运行

我在go中有一个测试包,它测试一些依赖于读取配置的东西。我想在运行所有测试之前读取该配置一次,所以我尝试使用TestMain(m*testing.M):main.go:packagetestsimport(...)varlogger=logging.MustGetLogger("tests")funcTestMain(m*testing.M){logger.Info("Initializingtestsuite")viper.SetConfigName("config")viper.AddConfigPath("..\\..\\")err:=viper.ReadInConfig()if

go - TestMain 未运行

我在go中有一个测试包,它测试一些依赖于读取配置的东西。我想在运行所有测试之前读取该配置一次,所以我尝试使用TestMain(m*testing.M):main.go:packagetestsimport(...)varlogger=logging.MustGetLogger("tests")funcTestMain(m*testing.M){logger.Info("Initializingtestsuite")viper.SetConfigName("config")viper.AddConfigPath("..\\..\\")err:=viper.ReadInConfig()if

testing - 找到 TestMain 多个定义

如果我定义两个测试,每个测试都有自己的TestMain方法,gotest错误:“找到多个TestMain定义”。我能理解并期待这种行为,因为在同一个包中不应该有多个TestMain。但是,我不知道现在该怎么办。每个测试套件都有自己的需求。我需要创建不同的TestMain来设置测试,当然,无需重命名我的包。我可以在其他语言中使用before、after等设置方法轻松做到这一点,这是测试类所独有的。我可能会去使用testify的套房。遗憾的是,stdlib不支持这一点。你有什么建议吗? 最佳答案 您可以使用M.Run.funcTestM

testing - 找到 TestMain 多个定义

如果我定义两个测试,每个测试都有自己的TestMain方法,gotest错误:“找到多个TestMain定义”。我能理解并期待这种行为,因为在同一个包中不应该有多个TestMain。但是,我不知道现在该怎么办。每个测试套件都有自己的需求。我需要创建不同的TestMain来设置测试,当然,无需重命名我的包。我可以在其他语言中使用before、after等设置方法轻松做到这一点,这是测试类所独有的。我可能会去使用testify的套房。遗憾的是,stdlib不支持这一点。你有什么建议吗? 最佳答案 您可以使用M.Run.funcTestM

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 - 在 Golang 的 TestMain() 中调用不同的测试函数

我正在尝试测试我的httpController并且我使用TestMain函数来准备我的测试,但是在我运行所有测试请求之前我需要先运行TestAuthUserController测试,它创建并授权用户.为此,我使用了wrapperfunc,它帮助我调用TestAuthUserController:funcTestMain(m*testing.M){//someprepearingstepsAuthUserController()//createandauthorizeuserbeforeallothertestsm.Run()fmt.Println("afterallinmain")db

go - TestMain - 没有要运行的测试

我正在编写一个编译C源文件并将输出写入另一个文件的包。我正在为这个包编写测试,我需要创建一个临时目录来写入输出文件。我正在使用TestMain函数来执行此操作。出于某种原因,当我刚刚运行TestMain测试时,我总是收到警告“没有要运行的测试”。我尝试调试TestMain函数,我可以看到确实创建了临时目录。当我手动创建testoutput目录时,所有测试都通过了。我正在从testdata目录加载两个C源文件,其中一个是故意错误的。gcc.go:packagegccimport("os/exec")funcCompile(inPath,outPathstring)error{cmd:=e
12