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

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 • Rust 包仓库 27470/week @ 2024-05-03 • Rust 包仓库 30664/week @ 2024-05-10 • Rust 包仓库 28623/week @ 2024-05-17 • Rust 包仓库 27112/week @ 2024-05-24 • Rust 包仓库 21264/week @ 2024-05-31 • Rust 包仓库 25842/week @ 2024-06-07 • Rust 包仓库 40135/week @ 2024-06-14 • Rust 包仓库 27509/week @ 2024-06-21 • Rust 包仓库 28938/week @ 2024-06-28 • Rust 包仓库 41219/week @ 2024-07-05 • Rust 包仓库 45359/week @ 2024-07-12 • Rust 包仓库 42463/week @ 2024-07-19 • Rust 包仓库 36541/week @ 2024-07-26 • Rust 包仓库 31486/week @ 2024-08-02 • Rust 包仓库 32760/week @ 2024-08-09 • Rust 包仓库 51676/week @ 2024-08-16 • Rust 包仓库

每月 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