首页 > 其他分享 >VScode 中golang 单元测试,解决单元测试超时timeout30s

VScode 中golang 单元测试,解决单元测试超时timeout30s

时间:2023-08-01 18:47:13浏览次数:54  
标签:Log VScode timeout30s 单元测试 go Test time test

目的:单元测试的主要目的是验证代码的每个单元(函数、方法)是否按照预期工作。

提示:解决单元测试超时30s的问题在序号4

 

1 准备以_test.go结尾文件和导入testing包

在命名文件时需要让文件必须以_test结尾,在文件中导入testing包。单元测试源码文件可以由多个测试用例组成,每个测试用例函数需要以Test为前缀

func TestXXX(t *testing.T)

(1) 测试用例文件不会参与正常的源码编译,不会被包含到可执行文件中;

(2) 测试用例文件使用go test指令来执行,没有也不需要main()作为函数入口。所有在以_test结尾的源码内以Test开头的函数会自动被执行;

(3) 测试用例可以不传入*testing.T参数。

测试代码如下:

注意:程序需要有go.mod文件,终端输入命令go mod init module即可生成

 1  package main
 2  import (     
 3     "testing"
 4     "fmt"
 5     "time"
 6 )  
 7 func Test_Log(t *testing.T) {
 8     t.Log("hello world")
 9     t.Log("hello world jkjk")
10     fmt.Println("==============Test_Log===============") 
11 }
12 func Test_World(t *testing.T) {
13     t.Log("start")  time.Sleep(1 * time.Second)
14     t.Log("1s")
15     start := time.Now()
16     time.Sleep(10000 * time.Microsecond)
17     elapsed := time.Since(start)
18     fmt.Println(elapsed)
19     fmt.Println("==============Test_World===============")
20 }

2 终端输入命令进行golang单元测试

(1) go test -v 执行项目中所有的单元测试文件

在终端输入命令:go test -v,执行单元测试并打印详情,PASS表示测试用例运行成功,FAIL表示测试用例运行失败;OK表示执行完成,并且可以看到执行的时长。

(2) go test -v xxx_test.go执行指定单元测试文件

当项目中有多个要执行的测试文件时,可以执行指定单元测试文件,如在终端输入命令:go test -v time_test.go

 

 (1) go test -run xxx -v 执行指定单元测试函数

当测试文件有多个测试函数执行,可以执行指定单元测试函数,如在终端输入命令:

go test -run Test_World -v

 

 

3 VScode测试进行golang单元测试

点击VScode视图左侧的测试按钮,点击module展开,可以看到项目的管理文件,点击对应文件的运行测试按钮执行单元测试,如点击module的运行测试按钮则执行所有文件的单元测试,也可以点击打开文件中测试函数的运行测试按钮执行单元测试。

 

 单元测试执行完成后会出现绿色打钩的执行完成图标。点击视图和更多操作按钮(...),点击清除所有结果则执行完成图标消失。

 

在进行单元测试的过程中,可以点击取消测试运行按钮取消测试。

4   解决golang单元测试超时30s

测试代码如下:

 1  package main
 2  import (     
 3     "testing"
 4     "fmt"
 5     "time"
 6 )  
 7 func Test_Log(t *testing.T) {
 8     t.Log("hello world")
 9     t.Log("hello world jkjk")
10     fmt.Println("==============Test_Log===============") 
11 }
12 func Test_World(t *testing.T) {
13     t.Log("start")  time.Sleep(25 * time.Second)
14     t.Log("25s")
15     start := time.Now()
16     time.Sleep(10000 * time.Microsecond)
17     elapsed := time.Since(start)
18     fmt.Println(elapsed)
19     fmt.Println("==============Test_World===============")
20 }

如果是在终端输入命令:go test -v进行单元测试,执行单元测试的程序总时长超过30s时也能够正常运行。

 如果是在VScode的测试中点击运行测试按钮进行单元测试时,执行30s之前的测试函数,超过30s的测试函数则会跳过。

 

 更改go test的超时时长:

(1) 点击VScode左下方的管理图标按钮

(2) 点击设置

(3) 在搜索区域输入:go test timeout

(4) 在Go:test timeout 输入框输入超时时长,如:1h

 

 再次点击运行测试按钮执行单元测试,测试文件都能顺利执行,并且可以看到设置的超时时长1h

 

 

标签:Log,VScode,timeout30s,单元测试,go,Test,time,test
From: https://www.cnblogs.com/sinberya/p/17598757.html

相关文章

  • 工具 – Vitest 与单元测试
    前言Vitest是一款配搭Vite的前端单元测试工具,可以用于取代Jasmine和Jest。我先聊一下测试,每当添加新代码或修改旧代码后,我们多少都得测试一下,以确保功能正确才能交付。这种测试通常只是写几个简单的调用,换换参数,console看看输出。没有问题也就ok了。大部分情况下并不......
  • vscode常用快捷键【转】
    1、选中光标所在单词==》ctrl+d2、删除光标所在行==》ctrl+shift+k3、拷贝光标所在行==》ctrl+c4、在光标下一行创建新的一行,同时移动光标到下一行==》crtl+enter5、复制光标所在行,并创建下一行,把内容粘贴到下一行==》shift+alt+⬇/⬆6、剪切光标所在行==》ctrl+x......
  • android 单元测试之 JUnit
    android里面做单元测试第一,JUnit。     实用范围:     东西,比如业务逻辑,数据封装,数值计算等等。并不能测试androidapi。第二,采用Instrumentation.Android单元测试的主入口是InstrumentationTestRunner。它相当于JUnit当中TestRunner的作用。你可以将Instrumentat......
  • vscode创建springboot项目
    1、安装ExtensionPackforjava2、安装jdk11环境sudoaptinstallopenjdk-11-jdk-headless3、在项目目录下创建src/main/java/com/example/app.javaimportorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplicat......
  • Go开发环境配置保姆式教程,VScode
    需求:Go开发环境配置以及VScode插件安装 1.1安装go1.20.6.windows-amd64.msi 下载地址:https://golang.google.cn/dl/ (1)  选择Windows版本go1.20.6.windows-amd64.msi  (2)下载完成后,双击.msi进行安装   (3)点击next  (4)  勾选同意,点击n......
  • vscode+gdb 配置
    到这个网址下载mingwc语言环境https://sourceforge.net/projects/mingw-w64/files/mingw-w64/我是windows64位,直接下载这个: 配置好环境变量下载c/c++插件配置vscode文件: launch.json文件:{//使用IntelliSense了解相关属性。//悬停以查看现有属性......
  • Vscode的portable模式
    下载zip解压包版本vscode,解压完成后创建与vscode.exe同级data目录。 解决扩展默认安装在系统盘用户名下导致C盘臃肿的问题。......
  • Soft Rasterizer (SoftRas) windows10 vscode 运行 环境配置记录
    配了好几天,一边搜索一边配,记录下做了些什么。我的环境:windows10,vscode,RTX3090配置cl环境变量安装openssl,配置环境变量安装libtorch,配置环境变量打开对应的虚拟环境里面的打开torch\include\ATen\Parallel.h,将inlineTORCHAPIvoidlazyinitnumthreads()的实现......
  • 对标 VSCode?JetBrains 新一代 IDE 登场: Fleet
    11月29日JetBrains官方发布了全新的轻量级编辑器Fleet,并号称是基于20年IDE开发经验打造的“新一代IDE”。Fleet的定位更加纯粹,聚焦编辑器功能而非替代现有的IDE产品。据推测Fleet的推出主要是JetBrains为了对抗微软的VSCode,防御后者不断抢占自家的IDE市场份额。......
  • VsCode如何配置C语言环境?
    以前学校上C语言课程都是使用VC++6.0上课,这个学期为了复习一遍C语言,而且自己经常使用VSCode开发前端项目,所以为了方便。这里把需要的环境和插件配置在这里介绍一下。Windows环境下安装C语言编译器MinGW-W64GCCC的下载地址为:https://sourceforge.net/projects/mingw-w64/下载......