#env-logger #integration-tests #logging #log

test-logger

单元和集成测试前初始化 env_logger 的简单助手。在稳定 Rust 上运行。

1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2016年7月14日

#25#env-logger

37 每月下载量
3 个crate中使用

MIT/Apache

4KB

测试日志记录器

单元和集成测试前初始化 env_logger 的简单助手。在稳定 Rust 上运行。

运行 cargo test 不会初始化日志后端,因此使用 log crate 的我们无法看到单元或集成测试失败时的日志输出。这个crate提供了一个简单的宏,提供了一种在单元和集成测试期间初始化 env_logger 的方法,同时仍然使得测试编写相对便捷。

test!

许多应用程序使用日志来帮助调试正在运行的应用程序,但不幸的是,没有简单的方法在运行单元和集成测试之前初始化日志记录器。该 test! 宏只是一个简单的包装器,用于在运行测试之前初始化 env_logger。这确保了日志语句在测试期间打印到 stdout。该宏确保日志记录器仅初始化一次。

使用 test!

test!(logs_are_printed_to_stdout_when_this_fails, {
    assert!(subject.do_stuff_that_fails());
});
// The above macro expands to:
#[test]
fn logs_are_printed_to_stdout_when_this_fails() {
    test_logger::ensure_env_logger_initialized();
    assert!(subject.do_stuff_that_fails());
}

test!(should_panic, simple_way_to_annotate_a_test_that_is_supposed_to_panic, {
    panic!("I'm supposed to panic.");
});
//expands to:
#[test]
#[should_panic]
fn simple_way_to_annotate_a_test_that_is_supposed_to_panic() {
    test_logger::ensure_env_logger_initialized();
    assert!(subject.do_stuff_that_fails());
}

// alternate format to support any arbitrary attributes on the test function
test!(#[allow(dead_code)], this_test_function_will_have_the_dead_code_lint_disabled, {
    ... 
    

许可证

许可协议为以下之一:

任选其一。

依赖项

~4MB
~79K SLoC