Rust 自动化测试

一.控制测试的运行方式

  • cargo test 指定命令行参数
  • 为 生成的测试二进制文件指定参数

1.1 向测试二进制文件传递参数

cargo test -- --help

1.1.1 并行或串行地进行测试

  • 运行多个测试时,Rust 默认使用多线程来并行执行.
  • 若不想并行测,或希望精确控制测试时所启动的线程数量,可以通过 --test-threads 控制 .
cargo test -- --test-threads=1
  • 将线程数量控制为 1, 执行顺序测试.

1.1.2 显示函数输出

cargo test -- --nocapture

1.1.3 通过显示指定来忽略某些测试

  • 某些特定测试执行起来非常耗时
  • 使用 ignore 属性来标记被忽略的测试, 将这些测试排除在正常的测试外
  • 忽略测试 : cargo test , #[ignore] 标注的方法被忽略
  • 单独测试被忽略的测试: cargo test -- --ignored , 仅 1ignore_test 被测试
#[test]
#[ignore]
fn ignore_test(){}

1.2 向 cargo test 传递参数

cargo test --help

1.2.1 只运行部分特定名称的测试

cargo test test_one

二.测试的组织结构

2.1 单元测试 : #cfg[test]

  • 在 tests 模块上标注 #cfg[test] 可以让 Rust 只在执行 cargo test 命令时编译和运行该部分测试代码,而在 cargo build 时剔除它们。
  • 无需对集成测试标注 #cfg[test] ,集成测试本身在独立的目录tests中, 与 src 目录同级别。
#cfg[test]
mod tests{
#[test]
fn test_one(){}
}

2.2 集成测试

2.2.1 单独运行特定测试文件

cargo test --test http --features="local-http, server"
  • --test : 指定文件名, 如 tests/http.rs
  • --features : 该测试需要启用的 features
cargo test --test basic -- --nocapture
  • 对集成测试 tests/basic.rs 测试,并输出内容
running 1 test
Cert-PEM=>
-----BEGIN CERTIFICATE-----
MIIBcjCCARmgAwIBAgIUf6uvgFf3AGfk5QdQdsk+Dg1NweowCgYIKoZIzj0EAwIw
ITEfMB0GA1UEAwwWcmNnZW4gc2VsZiBzaWduZWQgY2VydDAgFw03NTAxMDEwMDAw
MDBaGA80MDk2MDEwMTAwMDAwMFowITEfMB0GA1UEAwwWcmNnZW4gc2VsZiBzaWdu
ZWQgY2VydDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABBn2/LLdOldPhbp0R8EJ
8r6Rc8uqsD/1rwBuIk8setf5YnzFpxHwEa6uIlfI9yvvGu5TQ7SniO5WLTe7G5de
542jLTArMCkGA1UdEQQiMCCCE2hlbGxvLndvcmxkLmV4YW1wbGWCCWxvY2FsaG9z
dDAKBggqhkjOPQQDAgNHADBEAiAVQJrfVJwGgHmyJzt6YVQPbhTZ79qrcc59N7yx
lLKx0wIgQnuQYRxGkLiVqxswtuiRIUcCQfdyv4WdJd8HOVy6vlk=
-----END CERTIFICATE-----

PKCS8-KeyPaire=>
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgkzC+sXb9Sj/ApO0i
97nczw4hM/voUtfwaxL2cPHTCj+hRANCAAQZ9vyy3TpXT4W6dEfBCfK+kXPLqrA/
9a8AbiJPLHrX+WJ8xacR8BGuriJXyPcr7xruU0O0p4juVi03uxuXXueN
-----END PRIVATE KEY-----

test test_self_signed_cert ... ok

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

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值