【Rust自学】11.8. 忽略测试

喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(=・ω・=)

11.8.1. 忽略某些测试,执行剩余测试

某些测试执行起来非常耗时,所以在大部分情况下会想在运行cargo test时忽略它们,除非手动运行这些测试。

对于这些测试,Rust提供了ignore这个attribute(属性),将这些测试设为默认不执行。

看个例子:

rust 复制代码
#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn it_works() {
        let result = add(2, 2);
        assert_eq!(result, 4);
    }

    #[test]
    #[ignore]
    fn expensive_test() {
        assert_eq!(5, 1 + 1 + 1 + 1 + 1)
    }
}

由于expensive_test被加了ignore这个attribute,所以在cargo test不会执行,除非手动指定执行它们。

看一下测试结果:

复制代码
$ cargo test
   Compiling adder v0.1.0 (file:///projects/adder)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.60s
     Running unittests src/lib.rs (target/debug/deps/adder-92948b65e88960b4)

running 2 tests
test tests::expensive_test ... ignored
test tests::it_works ... ok

test result: ok. 1 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests adder

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

11.8.2. 单独执行被忽略的测试

那么如何单独运行这些被忽略的测试呢?添加参数即可,写:cargo test -- --ignored

复制代码
$ cargo test -- --ignored
   Compiling adder v0.1.0 (file:///projects/adder)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.61s
     Running unittests src/lib.rs (target/debug/deps/adder-92948b65e88960b4)

running 1 test
test expensive_test ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s

   Doc-tests adder

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

控制程序运行哪些测试可以确保快速返回cargo test结果,如果时间充裕,想要执行所有的测试(包括被忽略的和没被忽略的),就写cargo test -- --include-ignored

相关推荐
caoerzhong2 分钟前
JeeWMS 开源 WMS 部署避坑指南:Java 仓库管理系统的环境基线、四类根因与可复现交付
java·开发语言·开源
IT_陈寒2 分钟前
SpringBoot自动配置差点让我加班到凌晨
前端·人工智能·后端
时间的拾荒人5 分钟前
Qt 界面优化:绘图详解 —— 从基础图形到图片处理
开发语言·qt·面试
用户83562907805115 分钟前
使用 Python 对 Excel 工作表进行排序
后端·python
MayZork22 分钟前
Qt 文件操作:QSaveFile 与 QTemporaryFile(含 QTemporaryDir)实战
开发语言·qt
北冥you鱼35 分钟前
Go 语言空接口(interface{})使用场景与最佳实践
开发语言·windows·golang
用户83562907805143 分钟前
使用 Python 合并 PowerPoint 演示文稿
后端·python
xh didida1 小时前
Linux -- 基础IO
linux·服务器·开发语言·c++
个 人 练 习 生1 小时前
C++ string 类模拟实现:从底层理解字符串(上)
开发语言·c++·经验分享·学习·程序人生
2601_966949651 小时前
多市场量化策略的数据接口应该如何设计:从数据层架构到策略接入
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash