Go-知識測試-測試參數

Go-知識測試-測試參數

  • 1. -args
  • 2. -json
  • 3. -o
  • 4. -bench
  • 5. -benchtime
  • 6. -cpu
  • 7. -count
  • 8. -failfast
  • 9. -list
  • 10. -parallel
  • 11. -run
  • 12. -timeout
  • 13. -v
  • 14 -benchmem

1. -args

指示go test 把-args 后面的參數帶到測試中去。具體的測試函數會根據此參數來控制測試流程。
-args后面可以附帶多個參數,所有參數都將以字符串形式傳入,每個參數作為一個string,并存放到字符串切片中。

import ("flag""testing"
)func TestArgs(t *testing.T) {if !flag.Parsed() {flag.Parse()}args := flag.Args()for _, arg := range args {t.Logf("arg: %s", arg)}
}

使用 go test -v xx_test.go -args test hello world進行執行
在這里插入圖片描述

2. -json

-json 參數用于指示go test將結果轉換成json格式,便于在后續使用。
比如上面的例子go test -v xx_test.go -json -args test hello world
在這里插入圖片描述

3. -o

-o 參數指定生成的二進制可執行程序,并執行測試,測試結束不會刪除該程序。
沒有此參數時,go test 生成的二進制可執行程序存放到臨時目錄中,執行結束便刪除。
繼續使用上述的例子
在這里插入圖片描述

在這里插入圖片描述

直接執行二進制程序
在這里插入圖片描述

4. -bench

go test 默認不執行性能測試,使用-bench 參數才可以運行,而且只運行性能測試函數。
-bench 后面附加正則表達式,用于篩選需要執行的性能測試。如果要執行所有的性能測試,使用 . 作為正則。
這里的正則不是嚴格意義的正則,而是包含關系。
比如有如下三個性能測試:
func BenchmarkSlice(b *testing.B)
func BenchmarkSliceStr(b *testing.B)
func BenchmarkArray(b *testing.B)
如果使用go test -bench Slice ,那么會執行前兩個,第三個不會被執行。
如果是子測試,那么是存在層級的:

func BenchmarkSub(b *testing.B){b.Run("name=1", benchSub1)b.Run("name=2", benchSub2)b.Run("n=3", benchSub3)
}

測試函數命名規則中,子測試的名字需要以父測試名字作為前綴并以/連接,上面的例子中實際上包含了4個測試:
Sub,Sub/name=1,Sub/name=2,Sub/n=3
如果想執行三個子測試,那么使用參數-bench Sub,如果只是想執行第一個,那么-bench Sub/name=1
如果想執行前兩個,那么-bench Sub/name=
在這里插入圖片描述

5. -benchtime

-benchtime s 指定每個性能測試的執行時間,如果不指定,那么默認執行1s.
在這里插入圖片描述

6. -cpu

-cpu 參數提供了一個CPU個數的列表,提供此列表后,測試將按照這個列表指定的CPU數設置GOMAXPROCS并分別測試.
比如 -cpu 1,2 ,那么每個測試即將執行兩次,一次是用1個CPU執行,另一次是用兩個CPU執行。
在這里插入圖片描述

示例測試不適用

7. -count

-count n 指定每個測試執行的次數,默認執行一次。
在這里插入圖片描述

如果使用-count指定執行測試的同時還使用-cpu指定了多種CPU,那么測試將在每種CPU下均執行-count的次數。

示例測試不適用

8. -failfast

默認情況下,go test會執行所有匹配到的測試,并最后打印測試結果,無論成功或失敗。
-failfast 指定如果有測試出現失敗,則立即停止測試。

9. -list

-list regexp 只是列出匹配成功的測試函數,并不真正執行。而且不會列出子函數。
在這里插入圖片描述

10. -parallel

-parallel n 指定測試的最大并發數。
當測試使用t.Parallel()方法將測試轉為并發時,將受到最大并發數的限制,默認情況下,最多有GOMAXPROCS個測試并發,其他的測試只能阻塞等待。

11. -run

-run regexp 的作用是根據正則表達式執行單元測試和示例測試。正則匹配規則與-bench類似。

12. -timeout

-timeout d 默認情況下,測試執行超過10分鐘就會因超時而退出。
如果將超時時間設置為1s,那么大于1s的都是因為超時而退出:
在這里插入圖片描述

-timeout xs
-timeout xm
-timeout xh

13. -v

默認情況下,測試結果只打印簡單的測試結果,-v 參數可以打印詳細的日志。

在性能測試下,總是打印日志,因為日志有時會影響性能。

14 -benchmem

默認情況下,性能測試結果只打印運行次數,每個操作耗時。使用-benchmem則可以打印每個操作分配的字節數,每個操作分配的對象數。
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/44736.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/44736.shtml
英文地址,請注明出處:http://en.pswp.cn/web/44736.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

主機安全-進程、命令攻擊與檢測

目錄 概述反彈shell原理nc/dev/xxx反彈shell下載不落地反彈Shell各種語言反彈shell linux提權sudosuid提權mysql提權 Dnslog參考 概述 本文更新通過在主機(不含容器)上直接執行命令或啟動進程來攻擊的場景。檢測方面以字節跳動的開源HIDS elkeid舉例。每…

磁感應強度檢測模塊使用教程

目錄 一、磁感應強度檢測模塊(AT 協議版本、Modbus 協議版本)1、參數2、報警引腳 二、AT版本1、接線說明2、AT 指令 三、Modbus 版本1、接線說明2、Modbus 指令格式3、Modbus 指令 一、磁感應強度檢測模塊(AT 協議版本、Modbus 協議版本) 圖1 正面 圖2 背面 AT 協議版本和 Modb…

Letter Exchange

這道題目看官方題解就好了,這個轉換圖論挺顯然的 證明一下為什么最后一定是 顯然練完貶值后圖只能長成這個樣子 在消掉長度為\(2\)的環后,如果說圖沒邊了, 那么顯然就不用交換了,否則的話我們任取一條邊 那么對于\(2\)號點來說&am…

韋東山嵌入式linux系列-驅動進化之路:總線設備驅動模型

1 驅動編寫的 3 種方法 以 LED 驅動為例 1.1 傳統寫法 使用哪個引腳,怎么操作引腳,都寫死在代碼中。 最簡單,不考慮擴展性,可以快速實現功能。 修改引腳時,需要重新編譯。 應用程序調用open等函數最簡單的方法是驅動…

(深度估計學習)Depth Anything V2 復現

Depth Anything V2 復現 一、配置環境二、準備數據1. 權重文件2. 訓練數據 三、Test四、Train 代碼:https://github.com/DepthAnything/Depth-Anything-V2 一、配置環境 在本機電腦win跑之后依舊爆顯存,放到服務器跑:Ubuntu22.04&#xff0c…

使用Zabbix進行服務監控:構建高效穩定的IT服務管理平臺

使用Zabbix進行服務監控:構建高效穩定的IT服務管理平臺 在當今的數字化時代,IT服務管理(ITSM)對于確保企業IT系統的穩定性和性能至關重要。服務監控是ITSM的重要組成部分,可以幫助企業實時了解IT系統的運行狀況&#…

微調Qwen2大語言模型加入領域知識

目錄 試用Qwen2做推理安裝LLaMA-Factory使用自有數據集微調Qwen2驗證微調效果 試用Qwen2做推理 參考:https://qwen.readthedocs.io/en/latest/getting_started/quickstart.html from transformers import AutoModelForCausalLM, AutoTokenizer device "cuda…

極速構建的藝術:Kylin中Cube的并行構建實踐

極速構建的藝術:Kylin中Cube的并行構建實踐 引言 Apache Kylin是一款開源的分布式分析引擎,專為處理大規模數據集的即時查詢而設計。Kylin通過構建數據立方體(Cube)來優化查詢性能。隨著數據量的不斷增長,Cube的構建…

9.6 柵格圖層符號化唯一值著色渲染

文章目錄 前言多波段彩色渲染唯一值著色QGis設置為唯一值著色二次開發代碼實現唯一值著色 總結 前言 介紹柵格圖層數據渲染之唯一值著色渲染說明:文章中的示例代碼均來自開源項目qgis_cpp_api_apps 多波段彩色渲染唯一值著色 以“with_color_table.tif”數據為例…

硅谷甄選4(項目主體)

1.路由配置 1.1路由組件的雛形 src\views\home\index.vue(以home組件為例) 安裝插件: 1.2路由配置 1.2.1路由index文件 src\router\index.ts //通過vue-router插件實現模板路由配置 import { createRouter, createWebHashHistory } fro…

B站學習Java路線

Java 基礎 【零基礎 快速學Java】韓順平 零基礎30天學會Java JVM 尚硅谷宋紅康JVM全套教程(詳解java虛擬機) Java 并發 JUC

react-router實現路由攔截,useLocation,useNavigate鉤子

路由攔截 react-router中沒有直接給出攔截路由的方法,需要手動的去監聽路由的變化來攔截路由 路由攔截的要點: 能夠識別出目標路由和原始路由(區分跳轉前和跳轉后)能夠在跳轉時(跳轉前或者跳轉后)執行一些…

Python redis獲取的結果是字節不是字符串

Python redis獲取的結果是字節不是字符串 pool redis.ConnectionPool(hostlocalhost,port6379, passwordREDIS_PWD, decode_responsesTrue)需要指明給結果解碼decode_responsesTrue才能返回字符串

圖論基礎概念(詳細講解)

今天,我們講解一下圖論的概念,首先我們知道圖是一個什么東西。 圖你可以理解成一個網絡系統,兩個節點之間可能會有邊,邊鏈接兩個節點,可能是有向(就比如說a只能往b,或者b只能往c),可能是無向&a…

Vulnhub靶場 | DC系列 - DC1

https://www.vulnhub.com/series/dc,199/ 環境搭建 靶機鏡像下載地址:https://www.vulnhub.com/entry/dc-1,292/;需要將靶機和 kali 攻擊機放在同一個局域網里;本實驗kali 的 IP 地址:192.168.10.146。 滲透測試 1. 信息收集 …

CH16-DOM元素增刪改

CH16-DOM元素增刪改 本章目標 掌握如何使用DOM獲取節點時使用的屬性熟練使用DOM節點進行創建、添加、刪除、替換 一、使用DOM獲取節點時使用的屬性 1.1 首尾子節點 firstChild:獲取當前節點的首個子節點,注意:換行符、空格等也是節點。 …

【逆向】-異或-分組異或2

IDA查看源代碼 src長度32,encrypt函數加密,工4個參數,_FFFC雙擊,可以看到是個長度為7的固定值FnTest! 加密函數將4個參數又重新命名,混淆視聽,但是還是可以看到是嵌套循環,動態調試直接看結果可…

ArcGIS Pro SDK (八)地理數據庫 8 拓撲

ArcGIS Pro SDK (八)地理數據庫 8 拓撲 文章目錄 ArcGIS Pro SDK (八)地理數據庫 8 拓撲1 開放拓撲和進程定義2 獲取拓撲規則3 驗證拓撲4 獲取拓撲錯誤5 標記和不標記為錯誤6 探索拓撲圖7 找到最近的元素 環境:Visual …

C++11中重要的新特性之 lambda表達式 Part two

序言 在上一篇文章中,我們主要介紹了 C11 中的新增的關鍵詞,以及 范圍for循環 這類語法糖的使用和背后的邏輯。在這篇文章中我們會繼續介紹一個特別重要的新特性分別是 lambda表達式 。 1. lambda表達式 1.1 lambda的定義 C11 中的 lambda表達式 是一種…

昇思25天學習打卡營第19天 | ResNet50遷移學習再續

訓練模型部分代碼解析 構建Resnet50網絡 兩行初始化代碼 weight_init Normal(mean0, sigma0.02)這行代碼定義了一個初始化器weight_init,它將使用均值為0,標準差為0.02的正態分布來初始化網絡中的權重。這種初始化策略有助于在網絡的初始階段避免梯度…