【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

相关推荐
djjjx.4 小时前
【 C++ 】多态
开发语言·c++·多态
夜雪一千4 小时前
Python如何使用XPath定位没有特征的元素?无id、无class通用定位技巧
开发语言·python
AINative软件工程4 小时前
模型路由别写死在代码里:Policy-as-Code 才是 LLM 成本和质量的刹车片
后端
艾莉丝努力练剑4 小时前
【QT:解决问题】Qt5Core.dll:无法定位程序输入点
java·开发语言·qt·学习·面试
流浪0015 小时前
Python 基础语法(一):常量、变量、输入输出与运算符
开发语言·python
小蒜学长5 小时前
“喵汪联盟”宠物领养系统的设计与实现(代码+数据库+LW)
java·spring boot·后端·宠物
光影少年5 小时前
react离线缓存、图片缓存方案
开发语言·前端·javascript·react native·react.js·缓存·前端框架
SomeB1oody5 小时前
【RustyML入门】3.7. 循环层
开发语言·后端·机器学习·rust·教程
言乐68 小时前
Python游戏水平测试辅助系统
开发语言·python·游戏·django·pygame
东风破_14 小时前
ESLint 是什么?为什么你的项目需要它?
前端·后端·代码规范