#单元测试 #测试框架 #单元 #测试

dev ntest

增强 Rust 内置库的测试框架,添加了一些有用的功能

35 个版本

0.9.3 2024 年 6 月 19 日
0.9.2 2024 年 3 月 8 日
0.9.0 2022 年 11 月 11 日
0.8.1 2022 年 6 月 6 日
0.3.3 2019 年 9 月 20 日

#16测试 中排名

Download history 27470/week @ 2024-05-03 30664/week @ 2024-05-10 28623/week @ 2024-05-17 27112/week @ 2024-05-24 21264/week @ 2024-05-31 25842/week @ 2024-06-07 40135/week @ 2024-06-14 27509/week @ 2024-06-21 28938/week @ 2024-06-28 41219/week @ 2024-07-05 45359/week @ 2024-07-12 42463/week @ 2024-07-19 36541/week @ 2024-07-26 31486/week @ 2024-08-02 32760/week @ 2024-08-09 51676/week @ 2024-08-16

每月 158,195 次下载
用于 61 crates

MIT 许可证

17KB
270

NTest

docs crates downloads build status license

NTest 是一个增强 Rust 内置库的测试框架,添加了一些有用的功能。受 .Net 单元测试框架 NUnit 启发。

入门

NTest 的一些函数使用了 过程宏,这些宏在 Rust 2018 版本中是稳定的。如果你使用这个库,请确保你使用的是 2018 版本的 Rust。更新 Cargo.toml 文件

[package]
edition = "2018"
# ..

Cargo.toml 文件中将 NTest 库 添加到你的开发者依赖项中

[dev-dependencies]
ntest = "*"

内容

  • #[timeout()] 属性用于测试中的超时。
  • #[test_case()] 属性用于为测试函数定义多个测试用例。
  • assert_about_equal!() 比较两个浮点数或向量的相等性。
  • assert_false!() 预期测试用例的参数为假。
  • assert_true!() 预期测试用例的参数为真。
  • assert_panics!() 预期代码块会 panic。否则测试失败。

更多信息请参阅 文档

示例

创建测试用例

use ntest::test_case;

#[test_case("https://doc.rust-lang.net.cn.html")]
#[test_case("http://www.website.php", name="important_test")]
fn test_http_link_types(link: &str) {
    test_link(link, &LinkType::HTTP);
}

长运行函数的超时

use ntest::timeout;

#[test]
#[timeout(10)]
#[should_panic]
fn timeout() {
    loop {};
}

组合属性

use std::{thread, time};
use ntest::timeout;
use ntest::test_case;

#[test_case(200)]
#[timeout(100)]
#[should_panic]
#[test_case(10)]
#[timeout(100)]
fn test_function(i : u32) {
    let sleep_time = time::Duration::from_millis(i);
    thread::sleep(sleep_time);
}

依赖

~3.5MB
~75K SLoC