rust - 使用 cargo-nextest 替代 cargo test

cargo-nextest 是新一代的rust測試程序,能夠極大提升測試性能,可以完全替代 cargo test 命令。

1. 安裝

cargo install cargo-nextest

2. 執行測試

project
├── Cargo.toml
├── LICENSE
├── README.md
├── build.rs
├── core_utils
│   ├── Cargo.toml
│   ├── build.rs
│   ├── deny.toml
│   ├── src
│   │   ├── random
│   │   │   ├── arbitrary
│   │   │   │   ├── arbitrary.rs
│   │   │   │   ├── mod.rs
│   │   │   │   ├── option.rs
│   │   │   │   └── result.rs
│   │   │   ├── gen.rs
│   │   │   ├── mod.rs
│   │   │   └── utils.rs
│   │   │   └── lib.rs
│   ├── tests
│   │   ├── test_random.rs

tests/test_random.rs 包含兩個測試函數

  • test_random_string
  • test_random_string_2

src/random/option.rs 包含測試

#[cfg(test)]
mod tests {use crate::random::arby;#[test]fn test_option() {let x = arby::<Option<bool>>(5);println!("{:#?}", x);let x = arby::<Option<bool>>(5);println!("{:#?}", x);let x = arby::<Option<bool>>(5);println!("{:#?}", x);}
}

2.1 查找所有測試

cargo nextest list
cargo nextest list test_random

2.2 找出慢測試、泄露測試,并設置超時時間,超時就自動終止

cargo nextest run --slow-timeout 60 -leak-timeout 1024

2.3 并發測試

cargo nextest run --release -- --jobs 4
cargo nextest --jobs 4

2.4 重試失敗的測試用例

cargo nextest run --retries 3

2.5 運行上次失敗的測試

cargo nextest run -- --failed

2.6 測試指定的包

cargo nextest run -p core_utils

2.7 測試 lib 中的所有測試用例

cd core_utils
cargo nextest run :cargo nextest run --lib

2.8 運行項目中的所有測試

cargo nextest run
# 會包含文檔字符串中的測試用例
cargo nextest run --tests

2.9 測試 tests 文件夾中的指定函數(模糊匹配)

cd core_utils
cargo nextest run test_random_string
cargo nextest run -- test_random_string
cargo nextest run -E 'test(test_random_string_2)'
cargo nextest run -E 'test(test_random)'

2.10 測試 tests 文件夾中的指定函數(精確匹配)

cd core_utils
cargo nextest run -E 'test(=test_random_string)'

2.11 測試庫中的指定函數

cargo nextest run --lib random::arbitrary::option::tests::test_option
cargo nextest run random::arbitrary::option::tests::test_option
cargo nextest run random::arbitrary::option::tests
cargo nextest run random::arbitrary::option::
cargo nextest run random::arbitrary:
cargo nextest run random::

2.12 測試 tests 的一個文件

cargo nextest run --test test_random

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

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

相關文章

K-means聚類模型

目錄 1.定義 2.K-means聚類模型的優點 3.K-means聚類模型的缺點 4.K-means聚類模型的應用場景 5.對K-means聚類模型未來的展望 6.小結 1.定義 什么是 K-means 聚類模型&#xff1f;K-means 聚類模型是一種無監督學習算法&#xff0c;用于將數據劃分為不同的組或簇&#…

Lumines推出RGBL彩色混合LED

Luminus Devices傾心打造了一款嶄新的4合1 RGBL&#xff08;紅綠藍綠石灰&#xff09;LED系列&#xff0c;專為舞臺與建筑照明領域量身打造&#xff0c;滿足對高顯色指數&#xff08;CRI&#xff09;與高輸出顏色混合的苛刻需求。這一創新之舉&#xff0c;無疑是照明技術的一次…

使用HiBurn燒錄鴻蒙.bin文件到Hi3861開發板

鴻蒙官方文檔的“Hi3861開發板第一個示例程序”中描述了——如何使用DevEco Device Tool工具燒錄二進制文件到Hi3861開發板&#xff1b; 本文將介紹如何使用HiBurn工具燒錄鴻蒙的.bin文件到Hi3861開發板。 獲取HiBurn工具 通過鴻蒙官方文檔我們知道DevEco Device Tool是一個V…

SAP--ABAP踩坑日志---日期函數的踩坑-----FIMA_DATE_CREATE

當你需要動態生成日期列的時候,出現了奇怪的BUG怎么辦? 用函數循環循環產生獲取下一個日期,結果出現了5.30 直接到6.1了 …我的5.31呢??? 解決方案:用這個,不要瞎用函數啊! day_col day_col 1.

Mybatis 與 MybatisPlus 打印sql日志配置

Mybatis 與 MybatisPlus 打印sql日志配置 方法一&#xff1a; Mybatis 配置&#xff1a; mybatis:configuration: ### 開啟打印sql配置log-impl: org.apache.ibatis.logging.stdout.StdOutImpl ### 開啟駝峰配置 map-underscore-to-camel-case&#xff1a;trueMyb…

docker所在磁盤空間不足 遷移數據

1.查看原始目錄docker info | grep "Docker Root Dir" 一般在/var/lib/docker 2.停止docker service docekr stop 3.移動數據 注意 移動前不要創建docker目錄&#xff01; mv /var/lib/docker /home/docker 4.進入目錄查看是否與原始目錄相同&#xff0c;確認一…

LeetCode 題解:112. 路徑總和,遞歸,JavaScript,詳細注釋

原題鏈接&#xff1a; 112. 路徑總和 解題思路&#xff1a; 如果求根節點到葉子節點的路徑上的節點值之和&#xff0c;假設共有3個節點&#xff0c;那么寫成計算式是val1 val2 val3 sum那么將計算式轉換就可以得到val3 sum - val1 - val2也就是說&#xff0c;問題可以從…

表現層框架設計之表現層設計模式_2.MVP模式

1.MVP模式 MVP&#xff08;Model-View-Presenter&#xff09;模式提供數據&#xff0c;View負責顯示&#xff0c;Controller/Presenter負責邏輯的處理。MVP是從經典的模式MVC演變而來&#xff0c;它們的基本思想有相通的地方&#xff1a;Controller/Presenter負責邏輯的處理&am…

16、設計模式之迭代器模式

迭代器模式 迭代器模式&#xff08;Iterator Pattern&#xff09;是 Java 和 .Net 編程環境中非常常用的設計模式。這種模式用于順序訪問集合對象的元素&#xff0c;不需要知道集合對象的底層表示。 迭代器模式屬于行為型模式。 介紹 意圖&#xff1a; 提供一種方法順序訪問…

rtemis 包:多種機器學習算法集成!兼顧數據處理與可視化美圖

rtemis 是一個集機器學習與可視化于一體的 R 包&#xff0c;用于各種高級機器學習研究和應用。整體而言&#xff0c;該軟件有三個目標&#xff1a; 「應用數據科學」&#xff1a;使高級數據分析高效且易于使用 「機器學習研究」&#xff1a;提供一個平臺以開發和測試新穎的機器…

Linux 查詢開機時間

在Linux系統中&#xff0c;有幾種方法可以查詢系統的開機時間。 博主博客 https://blog.uso6.comhttps://blog.csdn.net/dxk539687357 方法一&#xff1a;使用 uptime 命令 uptime 命令顯示系統的運行時間以及其他信息。 [nukixuso6 ~]# uptime輸出示例&#xff1a; 15:29:…

【MySQL精通之路】查詢優化器的使用(8)-優化器提示

博主PS&#xff1a;優化器提示的作用就是你可以提示優化器使用什么優化策略。當然優化器只是被提示了&#xff0c;而不是必須按你的提示做出操作&#xff0c;它可以執行或者拒絕你的提示。所以它叫優化器提示&#xff0c;而不是優化器配置。 控制優化器策略的一種方法是設置優化…

谷歌B端獨立站建站推廣,外貿建站訓練營,傻瓜式教學

做外貿方法重要&#xff0c;工具更重要&#xff0c;而這些背后的規則和套路&#xff0c;身邊的人往往不會告訴你&#xff0c;成功的人更不會教給你。本套課程主要內容包括&#xff1a;一套體系化的獨立站建站方法&#xff0c;學會“高效學習”避免無效努力&#xff0c;擁有獨立…

不閉合三維TSP:蛇優化算法SO求解不閉合三維TSP(起點固定,終點不定,可以更改數據集),MATLAB代碼

旅行商從城市1出發&#xff0c;終點城市由算法求解而定 部分代碼 close all clear clc global data load(data.txt)%導入TSP數據集 Dimsize(data,1)-1;%維度 lb-100;%下界 ub100;%上界 fobjFun;%計算總距離 SearchAgents_no100; % 種群大小&#xff08;可以修改&#xff09; …

k8s node NotReady后會發生什么?

K8s 是一種強大的容器編排和管理平臺&#xff0c;能夠高效地調度、管理和監控容器化應用程序&#xff1b;其本身使用聲明式語義管理著集群內所有資源模型、應用程序、存儲、網絡等多種資源&#xff0c;Node 本身又屬于 K8s 計算資源&#xff0c;上面承載運行著各種類型的應用程…

新零售數據中臺:構建零售業高效率、智能化的數據處理平臺_光點科技

隨著互聯網技術的快速發展和移動支付、大數據等技術的廣泛應用&#xff0c;零售行業已經逐漸從傳統零售向新零售模式轉變。在這個變革的時代背景下&#xff0c;新零售數據中臺應運而生&#xff0c;它作為零售行業數據資源的整合與智能分析的核心載體&#xff0c;成為推動零售行…

Batchnorm的主要作用

Batchnorm的主要作用 加速訓練&#xff1a;BatchNorm能夠使神經網絡訓練得更快更穩定。它通過調整每層網絡輸入的數據分布&#xff0c;使得網絡的訓練過程更高效。 穩定性&#xff1a;BatchNorm減少了不同批次數據之間的差異&#xff0c;使得模型訓練更加穩定&#xff0c;不容…

10最佳iPhone數據恢復軟件評論

您還在尋找最好的iPhone數據恢復軟件嗎&#xff1f; 似乎我們在iPhone上放置了越來越多與日常生活和工作有關的重要事情。照片可以保持珍貴的時刻&#xff0c;聯系人可以保持聯系&#xff0c;錄音&#xff0c;備忘錄和日歷可以作為提醒&#xff0c;視頻和歌曲可以娛樂&#xf…

Ethernet匯總

架構 Ethernet 匯總 Ethernet系統框架 stamac Ethernet DTS配置 Ethernet 模塊&通信 Uboot實現 uboot Ethernet初始化 uboot Ethernet 數據收發流程【1】

xml篇---提取VOC格式的坐標,并按照cameraID進行排序(二)

xml篇—提取VOC格式的坐標&#xff0c;并按照cameraID進行排序&#xff08;二&#xff09; import os import xml.etree.ElementTree as ETdef parse_xml(xml_file):tree ET.parse(xml_file)root tree.getroot()objects {}for obj in root.findall(object):name obj.find(…