日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

goland go test_Go单元测试实践一,快速上手

發布時間:2024/9/30 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 goland go test_Go单元测试实践一,快速上手 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • Go單元測試實踐二,常見問題
  • Go單元測試實踐三,代碼風格
  • Go 單元測試實踐四,集成到gitlabci

前段時間我在團隊內推廣了單測,為幫助同事快速上手,寫了一些文檔,這是第一篇,
如果你對單測,Go都有基礎,本文可幫你迅速掌握Go單測。源碼來自github utdemo倉庫。

1. 背景/工具

Go原生給出了單測的書寫規范。有兩條,

  • 文件命名為*_test.go,一般與源碼并列,如下
  • /demo/src.go/src_test.go

    2. 測試函數命名為Test*,參數為t *testing.T,如下:

    // filename: src.go func Add(a, b int) int {return a + b }// filename: src_test.go package demo import "testing"func TestAdd1(t *testing.T) {if Add(2, 3) != 5 {t.Error("result is wrong!")} else {t.Log("result is right")} }

    我們額外使用了goconvey這個工具庫,它提供了一些工具方法,有它寫單測更方便。其介紹,安裝可參考 goconvey README

  • 下面是Goconvey樣例:
  • // filename: src_test.go import ("testing". "github.com/smartystreets/goconvey/convey" )func TestAdd(t *testing.T) {Convey("測試add方法", t, func() {So(Add(2, 3), ShouldEqual, 5)}) }

    2. Goconvey提供了一系列assert工具函數,之后會常用到,可以在這里查詢
    3. 更多樣例可參考github utdemo倉庫。需要提下,測試會用到一些公用函數,應把它們放置在testutils中以便引用,這個做法在demo中有展示。

    2. 怎樣做調試?

    最方便的方法是使用goland調試:

  • 編寫單測代碼
  • 按下快捷鍵 run context configuration,mac下默認為"control+shift+r"
  • 查看執行結果,是否success
  • 如fail,繼續從1,2,3循環
  • 效果如下圖

    如上方法僅能調試單個文件,如要執行某包內的所有測試,

    • 所有包,運行命令:go test ./...
    • 僅指定包,運行命令:go test ${包名}, 如:go test github.com/xialu4820723/utdemo/file
    • 僅指定路徑,運行命令: go test ${文件路徑}
      如:go test ./file

    運行命令時,當前目錄應為項目根目錄

    3. 怎么查看測試覆蓋率?

    分兩步:

  • 生成覆蓋率報告文件:
    • 所有包:go test -coverprofile cover.out -coverpkg=./... ./...
    • 僅指定包:go test -coverprofile cover.out ${包名},
      如:go test -coverprofile cover.out github.com/xialu4820723/utdemo/file

    以上命令會生成名為"cover.out"的文件

    2. 展示測試覆蓋報告:

    html形式:go tool cover -html=cover.out
    文字形式:go tool cover -func=cover.out

    html格式比較直觀,效果如下圖:

    綜覽所有包的測試覆蓋率:

  • goconvey
  • 安裝goconvey,執行命令:go get github.com/smartystreets/goconvey
  • 來到項目目錄下,運行命令:goconvey,會彈出一個網頁
  • 此時在后臺會運行各個包的單測,等待一會,屏幕左側會展示出各包的測試覆蓋情況
  • 使用goland
  • 在ide界面,右鍵點擊項目根目錄
  • 點擊Run with Coverage
  • 效果分別如下圖所示

    總結

    以上是生活随笔為你收集整理的goland go test_Go单元测试实践一,快速上手的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 国产精品v欧美精品v日韩精品 | 成人免费观看网站 | 久操视频免费在线观看 | 精品在线视频免费观看 | av二区在线 | 麻豆一区二区99久久久久 | 中文字幕第十一页 | 国产精品一二三四区 | 欧美a在线视频 | 肉色欧美久久久久久久免费看 | 欧美在线一| 日产精品久久久久久久蜜臀 | 俺来也俺也啪www色 欧洲一区二区视频 | 麻豆亚洲 | 免费中文字幕 | 2025国产精品视频 | 网站久久 | 在线天堂资源 | 精品一区二区三区蜜桃 | 亚洲最大福利视频网 | 精品人妻人伦一区二区有限公司 | 99热黄色| 极品美女无套呻吟啪啪 | 欧美日韩国产传媒 | 天天激情| 日本xxxx裸体xxxx | 日韩激情免费 | www.天堂av| 性做久久久久久久久 | 国内外成人免费视频 | 日韩av一区二区在线 | 国语对白做受69按摩 | 精品久久国产视频 | 国产三级小视频 | 色在线视频观看 | 国产ts在线观看 | 亚洲www.| 麻豆视频免费网站 | 激情久久免费视频 | 性激烈视频在线观看 | 91视频分类 | 亚洲av无码一区二区二三区 | 国产午夜精品一区二区理论影院 | 欧美丝袜脚交 | 国产乱淫av麻豆国产免费 | 五月天婷婷激情视频 | 国产乱妇4p交换乱免费视频 | 国产美女久久久久 | 在线a毛片 | 亚洲免费观看高清完整版在线 | 日本视频一区二区 | 日本少妇吞精囗交 | 欧美黄色一区二区 | 免费一级特黄特色大片 | 精品乱子伦一区二区 | 欧美日韩在线视频播放 | 人妻丰满熟妇av无码区免 | 成人欧美在线视频 | 亚洲欧美在线成人 | 不卡的av电影 | 成人在线观看免费视频 | 午夜亚洲 | 激情黄色小视频 | 成人免费公开视频 | 婷婷视频| 国精产品一区一区三区免费视频 | 婷婷综合av | 富婆如狼似虎找黑人老外 | 永久免费视频网站直接看 | 91亚洲综合 | 一区二区视频免费观看 | 国产乱码精品 | 少妇29p | 五月婷婷中文 | 精品一二三四 | 国产日韩一区二区三区 | 青青久久av | 天堂成人在线观看 | 国产欧美日韩成人 | 中日韩黄色片 | 99热在线这里只有精品 | 日韩欧av | 男女午夜免费视频 | 松本一香在线播放 | 久久高潮视频 | 精品国产综合 | 中文字幕一区二区三区免费看 | 国产精品你懂得 | 黄网站免费在线观看 | 一区二区视频免费看 | 女儿的朋友5中汉字晋通话 欧美成人免费高清视频 | 激情播播网 | 国产成人高清 | 在线sese | 久久高清一区 | 男生草女生的视频 | 中字幕视频在线永久在线观看免费 | 亚洲人做受 | 国产淫片 |