草庐IT

test_msg

全部标签

unit-testing - 如何测试不太可能的并发场景?

例如,map访问是这样的:func(pool*fPool)fetch(urlstring)*ResultPromise{pool.cacheLock.RLock()ifrp,pres:=pool.cache[url];pres{pool.cacheLock.RUnlock()returnrp}pool.cacheLock.RUnlock()pool.cacheLock.Lock()ifrp,pres:=pool.cache[url];pres{pool.cacheLock.Unlock()//SkipaddingurlifsomeonesnuckitinbetweenRUnlockan

go - 如何从 go test -coverprofile=cover.out 中提取代码覆盖值?

我正在为我们的go应用程序开发CI(TFS2015),我想确保代码质量。例如,当go应用程序的代码覆盖率较低(低于60%)时,CI将导致构建过程失败。现在我可以使用“gotest-coverprofile=cover.out”命令成功获取代码覆盖率值,但我不知道如何提取该值以便在其他地方使用,例如PowerShell脚本。我试图读取cover.out文件,但没有覆盖率结果。 最佳答案 我可以直接猜测的愚蠢和直接的方式:尝试gotest-cover-json,解码结果并在“Action”中查找“coverage:”字符串:“outpu

go - 如何从 go test -coverprofile=cover.out 中提取代码覆盖值?

我正在为我们的go应用程序开发CI(TFS2015),我想确保代码质量。例如,当go应用程序的代码覆盖率较低(低于60%)时,CI将导致构建过程失败。现在我可以使用“gotest-coverprofile=cover.out”命令成功获取代码覆盖率值,但我不知道如何提取该值以便在其他地方使用,例如PowerShell脚本。我试图读取cover.out文件,但没有覆盖率结果。 最佳答案 我可以直接猜测的愚蠢和直接的方式:尝试gotest-cover-json,解码结果并在“Action”中查找“coverage:”字符串:“outpu

testing - 登录golang测试可以吗?还是不进行登录测试是一种做法?

golang测试有logging可以吗?还是没有登录测试的习惯?我的测试目前看起来像这样。我不确定我是否做对了,需要建议在golang中进行测试的最佳实践。顺便说一句,这是一个集成测试。日志问题主要在初始化步骤TestMain,其中输入是*testing.M,没有日志功能。vartestDB*DBfuncclearTable(namestring){varerrerror_,err=testDB.Exec(fmt.Sprintf("DELETEFROM%s",name))iferr!=nil{log.Fatalf("[FATA]Failedtoclearatableindatabase

testing - 登录golang测试可以吗?还是不进行登录测试是一种做法?

golang测试有logging可以吗?还是没有登录测试的习惯?我的测试目前看起来像这样。我不确定我是否做对了,需要建议在golang中进行测试的最佳实践。顺便说一句,这是一个集成测试。日志问题主要在初始化步骤TestMain,其中输入是*testing.M,没有日志功能。vartestDB*DBfuncclearTable(namestring){varerrerror_,err=testDB.Exec(fmt.Sprintf("DELETEFROM%s",name))iferr!=nil{log.Fatalf("[FATA]Failedtoclearatableindatabase

unit-testing - 在 Go 中对 SSH 客户端进行单元测试

我用Go写了一个SSH客户端,我想写一些测试。问题是我以前从未真正编写过正确的单元测试,而且大多数教程似乎都侧重于为添加两个数字或其他玩具问题的函数编写测试。我读过有关模拟、使用接口(interface)和其他技术的信息,但我在应用它们时遇到了麻烦。此外,我的客户端将同时使用,以允许一次快速配置多个设备。不确定这是否会改变我编写测试的方式或是否会添加额外的测试。感谢您的帮助。这是我的代码。基本上,Device有4个主要功能:Connect、Send、Output/Err和Close分别用于连接到设备、向其发送一组配置命令、捕获session的输出以及关闭客户端。packagedevic

unit-testing - 在 Go 中对 SSH 客户端进行单元测试

我用Go写了一个SSH客户端,我想写一些测试。问题是我以前从未真正编写过正确的单元测试,而且大多数教程似乎都侧重于为添加两个数字或其他玩具问题的函数编写测试。我读过有关模拟、使用接口(interface)和其他技术的信息,但我在应用它们时遇到了麻烦。此外,我的客户端将同时使用,以允许一次快速配置多个设备。不确定这是否会改变我编写测试的方式或是否会添加额外的测试。感谢您的帮助。这是我的代码。基本上,Device有4个主要功能:Connect、Send、Output/Err和Close分别用于连接到设备、向其发送一组配置命令、捕获session的输出以及关闭客户端。packagedevic

unit-testing - 在包下运行 go test 时,如何在测试和覆盖率报告中跳过 go 文件

我想在运行gotest和覆盖时跳过某个包下的特定go文件。请找到下面的命令,我曾经在我的服务包下运行:cdsrc/service&&gotest--coverprofilecoverageService.out--coverpkg./. 最佳答案 不幸的是,没有简单的方法可以仅根据文件名跳过测试,但是,这里有三个可能有效的简单选项:1。使用正则表达式指定测试gotest命令支持-run运行时选项,它只运行满足正则表达式的测试:-runregexpRunonlythosetestsandexamplesmatchingtheregul

unit-testing - 在包下运行 go test 时,如何在测试和覆盖率报告中跳过 go 文件

我想在运行gotest和覆盖时跳过某个包下的特定go文件。请找到下面的命令,我曾经在我的服务包下运行:cdsrc/service&&gotest--coverprofilecoverageService.out--coverpkg./. 最佳答案 不幸的是,没有简单的方法可以仅根据文件名跳过测试,但是,这里有三个可能有效的简单选项:1。使用正则表达式指定测试gotest命令支持-run运行时选项,它只运行满足正则表达式的测试:-runregexpRunonlythosetestsandexamplesmatchingtheregul

unit-testing - 如何在 Go 子测试中添加超时?

我目前正在使用Go子测试并行运行多个测试。像这样的-funcTestGroupedParallel(t*testing.T){for_,tc:=rangetestCases{tc:=tc//capturerangevariablet.Run(tc.Name,func(t*testing.T){t.Parallel()ifgot:=foo(tc.in);got!=tc.out{t.Errorf("got%v;want%v",got,tc.out)}...})}}当我使用超时标志时,它会终止所有并行运行的测试。有什么办法可以让每个子测试超时?谢谢! 最佳答案