草庐IT

statistical-test

全部标签

testing - 如何在 Go 中测试 os.exit 场景

鉴于此代码funcdoomed(){os.Exit(1)}如何正确测试调用此函数是否会导致使用gotest退出?这需要在一组测试中发生,换句话说,os.Exit()调用不会影响其他测试,应该被捕获。 最佳答案 有一个presentation由AndrewGerrand(Go团队的核心成员之一)在其中展示了如何做到这一点。给定一个函数(在main.go中)packagemainimport("fmt""os")funcCrasher(){fmt.Println("Goingdowninflames!")os.Exit(1)}下面是测试

go test 在同一个包中找不到函数

目录结构为:srcsrc/pkgsrc/pkg/t1.gosrc/pkg/t1_test.got1.gopackagepkgimport("fmt")funcSayHI(){fmt.Println("thisist1")}t1_test.gopackagepkgimport("testing")funcTestXYZ(t*testing.T){SayHI()}从目录src/pkg的命令行调用gotest去测试t1_test.go错误:./t1_test.go:8:undefined:SayHIFAILcommand-line-arguments[buildfailed]但功能在那里感谢

go test 在同一个包中找不到函数

目录结构为:srcsrc/pkgsrc/pkg/t1.gosrc/pkg/t1_test.got1.gopackagepkgimport("fmt")funcSayHI(){fmt.Println("thisist1")}t1_test.gopackagepkgimport("testing")funcTestXYZ(t*testing.T){SayHI()}从目录src/pkg的命令行调用gotest去测试t1_test.go错误:./t1_test.go:8:undefined:SayHIFAILcommand-line-arguments[buildfailed]但功能在那里感谢

testing - 强制重新测试或禁用测试缓存

问题:当我两次运行相同的go测试时,第二次运行根本没有完成。结果是第一次运行时缓存的结果。PASSoktester/apitests(cached)链接我已经检查过https://golang.org/cmd/go/#hdr-Testing_flags但没有用于此目的的cli标志。问题:是否有可能强制gotest始终运行测试而不缓存测试结果。 最佳答案 testingflagsdocs中描述了一些选项。:goclean-testcache:使所有测试结果过期在您的测试运行中使用不可缓存的标志。惯用的方法是使用-count=1也就是说

testing - 强制重新测试或禁用测试缓存

问题:当我两次运行相同的go测试时,第二次运行根本没有完成。结果是第一次运行时缓存的结果。PASSoktester/apitests(cached)链接我已经检查过https://golang.org/cmd/go/#hdr-Testing_flags但没有用于此目的的cli标志。问题:是否有可能强制gotest始终运行测试而不缓存测试结果。 最佳答案 testingflagsdocs中描述了一些选项。:goclean-testcache:使所有测试结果过期在您的测试运行中使用不可缓存的标志。惯用的方法是使用-count=1也就是说

unit-testing - 如何使用 Go 中的测试包进行测试设置

当使用testingpackage时,如何进行整体测试设置处理,为所有测试奠定基础?例如,在Nunit中有一个[SetUp]属性。[TestFixture]publicclassSuccessTests{[SetUp]publicvoidInit(){/*Loadtestdata*/}} 最佳答案 从Go1.4开始,您可以实现setup/teardown(无需在每次测试之前/之后复制您的函数)。文档概述here在主要部分:TestMainrunsinthemaingoroutineandcandowhateversetupandte

unit-testing - 如何使用 Go 中的测试包进行测试设置

当使用testingpackage时,如何进行整体测试设置处理,为所有测试奠定基础?例如,在Nunit中有一个[SetUp]属性。[TestFixture]publicclassSuccessTests{[SetUp]publicvoidInit(){/*Loadtestdata*/}} 最佳答案 从Go1.4开始,您可以实现setup/teardown(无需在每次测试之前/之后复制您的函数)。文档概述here在主要部分:TestMainrunsinthemaingoroutineandcandowhateversetupandte

unit-testing - 在 Go 中分离单元测试和集成测试

在GoLang(作证)中分离单元测试和集成测试是否有既定的最佳实践?我混合了单元测试(不依赖任何外部资源,因此运行速度非常快)和集成测试(确实依赖任何外部资源,因此运行速度较慢)。所以,当我说gotest时,我希望能够控制是否包含集成测试。最直接的技术似乎是在main中定义一个-integrate标志:varrunIntegrationTests=flag.Bool("integration",false,"Runtheintegrationtests(inadditiontotheunittests)")然后在每个集成测试的顶部添加一个if语句:if!*runIntegrationT

unit-testing - 在 Go 中分离单元测试和集成测试

在GoLang(作证)中分离单元测试和集成测试是否有既定的最佳实践?我混合了单元测试(不依赖任何外部资源,因此运行速度非常快)和集成测试(确实依赖任何外部资源,因此运行速度较慢)。所以,当我说gotest时,我希望能够控制是否包含集成测试。最直接的技术似乎是在main中定义一个-integrate标志:varrunIntegrationTests=flag.Bool("integration",false,"Runtheintegrationtests(inadditiontotheunittests)")然后在每个集成测试的顶部添加一个if语句:if!*runIntegrationT

unit-testing - 使用 Go 语言进行测试的正确包命名

我在Go中看到了几种不同的测试包命名策略,想知道每种方法的优缺点以及我应该使用哪一种。策略1:文件名:github.com/user/myfunc.gopackagemyfunc测试文件名:github.com/user/myfunc_test.gopackagemyfunc见bzip2举个例子。策略2:文件名:github.com/user/myfunc.gopackagemyfunc测试文件名:github.com/user/myfunc_test.gopackagemyfunc_testimport("github.com/user/myfunc")见wire举个例子。策略3:文