#parameterized #proc-macro #test

extel_parameterized

为 Extel 创建参数化测试的 proc 宏 crate

2 个版本

0.1.1 2023 年 10 月 2 日
0.1.0 2023 年 9 月 23 日

#15 in #parameterized

每月下载 37
extel 中使用

MIT 许可证

6KB

Extel Parameterized - 在 Rust 中编写参数化测试

Extel Parameterized,或简称 parameterized,是一个 proc 宏 crate,用于提供一个 parameters 宏,该宏可以将单参数函数转换为 Extel 可以解释的有效函数。

use extel::prelude::*;
use extel_parameterized::parameters;

fn single_test() -> ExtelResult {
    let mut my_cmd = cmd!("echo -n \"hello world\"");
    let output = my_cmd.output()?;
    let string_output = String::from_utf8(output.stdout)?;

    extel_assert!(
        string_output == *"hello world",
        "expected 'hello world', got '{}'"
        string_output
    )
}

#[parameters(1, 2, -2, 4)]
fn param_test(x: i32) -> ExtelResult {
    extel_assert!(x > 0, "{} <= 0", x)
}

fn main() {
    init_test_suite!(ExtelDemo, single_test, param_test);
    ExtelDemo::run(TestConfig::default());
}

lib.rs:

Extel Parameterized - 在 Rust 中编写参数化测试

Extel Parameterized,或简称 parameterized,是一个 proc 宏 crate,用于提供一个 parameters 宏,该宏可以将单参数函数转换为 Extel 可以解释的有效函数。

use extel::prelude::*;
use extel_parameterized::parameters;

fn single_test() -> ExtelResult {
    let mut my_cmd = cmd!("echo -n \"hello world\"");
    let output = my_cmd.output()?;
    let string_output = String::from_utf8(output.stdout)?;

    extel_assert!(
        string_output == *"hello world",
        "expected 'hello world', got '{}'",
        string_output
    )
}

#[parameters(1, 2, -2, 4)]
fn param_test(x: i32) -> ExtelResult {
    extel_assert!(x > 0, "{} <= 0", x)
}

fn main() {
    init_test_suite!(ExtelDemo, single_test, param_test);
    ExtelDemo::run(TestConfig::default());
}

无运行时依赖