【Go学习】Ginkgo测试框架学习实践 + 问题记录 + 怎么解决(0)

news/2024/12/22 16:38:30/

1、ginkgo测试框架介绍:https://onsi.github.io/ginkgo/
2、重点是学习实践 + 问题记录 + 怎么解决
3、送福利:国内好用的ChatGpt有很多,比如:天工、文心一言、讯飞星火、通义万相等

1. 安装

 xxx@macdeMacBook-Pro-3  /Volumes/mac/study/.../ginkgo  go get github.com/onsi/ginkgo/v2/ginkgo
### 输出 ###
go: downloading github.com/onsi/ginkgo v1.16.5
go: downloading github.com/onsi/ginkgo/v2 v2.15.0
go: downloading golang.org/x/tools v0.16.1
go: downloading github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572
go: downloading github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38
go: added github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572
go: added github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38
go: added github.com/onsi/ginkgo/v2 v2.15.0
go: added golang.org/x/tools v0.16.1xxx@macdeMacBook-Pro-3  /Volumes/mac/study/.../ginkgo  go install github.com/onsi/ginkgo/v2/ginkgo
### 没有任何输出就是ok的 ###xxx@macdeMacBook-Pro-3  /Volumes/mac/study/.../ginkgo  go get github.com/onsi/gomega/...
### 输出 ###
go: downloading github.com/onsi/gomega v1.31.1
go: downloading github.com/google/go-cmp v0.6.0
go: downloading github.com/golang/protobuf v1.5.3
go: downloading golang.org/x/net v0.19.0
go: downloading gopkg.in/yaml.v3 v3.0.1
go: downloading google.golang.org/protobuf v1.28.0
go: downloading golang.org/x/text v0.14.0
go: upgraded github.com/onsi/gomega v1.30.0 => v1.31.1

在这里插入图片描述

2. 使用

(1)安装正确的话,在当前目录的平行目录下应该会有一个新增的bin目录,目录下有个可执行文件
ginkgo

 xxx@macdeMacBook-Pro-3  /Volumes/mac/study/.../ginkgo  ../bin/ginkgo version
Ginkgo Version 2.15.0

(2)需要配置一下环境变量,不然只能在这个目录下才能执行

 xxx@macdeMacBook-Pro-3  /Volumes/mac/study/.../ginkgo  vim ~/.bash_profile
# ...
export GINKGOPATH=/Volumes/mac/study/goRoot/LeetCodeGoLangWJ/LearnGoWithTests #Ginkgo测试框架学习
export PATH=$GOPATH/bin:$GOROOT/bin:$GINKGOPATH/bin:$PATH
# ...xxx@macdeMacBook-Pro-3  /Volumes/mac/study/.../ginkgo  . ~/.bash_profile 

(3)之后就可以愉快的玩耍了

 xxx@macdeMacBook-Pro-3  /Volumes/mac/study/.../ginkgo  ginkgo versionGinkgo Version 2.15.0

(4)按上面的官方介绍文档,通过命令生成一个最简单的ginkgo测试代码并执行测试

# 通过 ginkgo bootstrap 命令生成一个最简单的ginkgo测试代码xxx@macdeMacBook-Pro-3  /Volumes/mac/study/.../ginkgo   ginkgo bootstrap
Generating ginkgo test suite bootstrap for ginkgo in:ginkgo_suite_test.go
# 执行很简单:直接在当前目录下,执行ginkgo即可xxx@macdeMacBook-Pro-3  /Volumes/mac/study/.../ginkgo   ginkgoFailed to compile ginkgo:# ginkgo
../../../pkg/mod/github.com/onsi/ginkgo/v2@v2.15.0/core_dsl.go:25:2: missing go.sum entry for module providing package github.com/go-logr/logr (imported by github.com/onsi/ginkgo/v2); to add:go get github.com/onsi/ginkgo/v2@v2.15.0
FAIL    ginkgo [setup failed]
FAILGinkgo ran 1 suite in 477.31418msTest Suite Failed

可以看到,直接报错了,原因比较简单,就是当前目录下的go.sum文件中的很多包其实没有下载下来,执行命令再次下载即可(如果有没下载成功的,重复操作,直到全部成功)

ChatGpt给的标准解决方案:(国内好用的ChatGpt有很多,比如:天工、文心一言、讯飞星火、通义万相等)

  • 这个错误通常意味着你在你的Go项目中引入了一个新的依赖,但是Go无法找到该依赖的go.sum条目。go.sum文件是Go用来跟踪依赖项的文件,它记录了每个依赖项的版本和哈希值。
  • 要解决这个问题,你可以尝试运行go mod tidy,它会尝试自动下载缺少的依赖项并更新你的go.sum文件。如果这个命令无法解决问题,你可能需要手动检查并更新你的依赖项。
  • 如果你使用的是GitHub上的依赖,你也可以尝试查看该依赖的GitHub仓库,看看是否有go.sum文件,如果没有,你可能需要联系依赖的维护者来获取它。
 xxx@macdeMacBook-Pro-3  /Volumes/mac/study/.../ginkgo  go mod tidy
go: downloading github.com/go-logr/logr v1.3.0
go: downloading golang.org/x/sys v0.15.0
go: downloading github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572
go: downloading golang.org/x/tools v0.16.1
go: downloading github.com/golang/protobuf v1.5.3
go: downloading gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405
go: downloading github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38
go: downloading github.com/stretchr/testify v1.6.1
go: downloading google.golang.org/protobuf v1.28.0
go: downloading github.com/pmezard/go-difflib v1.0.0
go: downloading github.com/davecgh/go-spew v1.1.1

然后再次执行测试,可以看到成功了

 xxx@macdeMacBook-Pro-3  /Volumes/mac/study/.../ginkgo  ginkgo     
Running Suite: Ginkgo Suite - /Volumes/mac/study/goRoot/LeetCodeGoLangWJ/LearnGoWithTests/ginkgo
================================================================================================
Random Seed: 1705981574Will run 0 of 0 specsRan 0 of 0 Specs in 0.000 seconds
SUCCESS! -- 0 Passed | 0 Failed | 0 Pending | 0 Skipped
PASSGinkgo ran 1 suite in 10.747687301s
Test Suite Passed

未完待续。。。


http://www.ppmy.cn/news/1330920.html

相关文章

51单片机8*8点阵屏

8*8点阵屏 8*8点阵屏是一种LED显示屏,它由8行和8列的LED灯组成。每个LED灯的开闭状态都可以独立控制,从而可以显示出数字、字母、符号、图形等信息。 8*8点阵屏的原理是通过行列扫描的方式,控制LED灯的亮灭,从而显示出所需的图案或…

阶乘分解《算法竞赛进阶指南》

阶乘分解《算法竞赛进阶指南》 \Huge{阶乘分解《算法竞赛进阶指南》} 阶乘分解《算法竞赛进阶指南》 题目地址:197. 阶乘分解 - AcWing题库 文章目录 题面输入格式输出格式数据范围输入样例:输出样例:样例解释 思路标程 题面 给定整数 N N…

上位机图像处理和嵌入式模块部署(windows opencv)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 opencv可以运行在多个平台上面,当然windows平台也不意外。目前来说,opencv使用已经非常方便了,如果不想自己编译…

【心得】java从CC1链入门CC链个人笔记

来劲了,感觉离真正的CTF又近了一步。 本文仅从一个萌新的角度去谈,如有纰漏,纯属蒟蒻。 目录 CC链概念 CC链学习前置知识 CC1链 Version1 Version2 Version3 CC链概念 CC链 Commons Collections apache组织发布的开源库 里面主要对…

数据库:逻辑删除|物理删除及适用性

物理删除和逻辑删除是两种不同的记录删除操作方式,它们各自具有一些优劣势,并适用于不同的场景。 物理删除 物理删除的优势: 节省存储空间:物理删除会直接从数据库中删除记录,可以实现即时的存储空间释放&#xff0c…

2024.1.20

今天主要是以复习为主&#xff0c;以前写过的C语言代码和高数&#xff0c;就在后天&#xff0c;紧张刺激的高数考试就来了&#xff0c;还是有点小慌…… #define _CRT_SECURE_NO_WARNINGS #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<math.h> #i…

多输入多输出 | Matlab实现SSA-CNN麻雀算法优化卷积神经网络多输入多输出预测

多输入多输出 | Matlab实现SSA-CNN麻雀算法优化卷积神经网络多输入多输出预测 目录 多输入多输出 | Matlab实现SSA-CNN麻雀算法优化卷积神经网络多输入多输出预测预测效果基本介绍模型背景程序设计参考资料 预测效果 基本介绍 Matlab实现SSA-CNN麻雀算法优化卷积神经网络多输入…

解密POM:提升自动化脚本稳定性和开发效率的正确姿势!

Page Objects是selenium的一种测试设计模式&#xff0c;主要将每个页面看作是一个class。class的内容主要包括属性和方法&#xff0c;属性不难理解&#xff0c;就是这个页面中的元素对象&#xff0c;比如输入用户名的输入框&#xff0c;输入登陆密码的输入框、登陆按钮、这个页…