1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2016年7月14日 |
---|
#25 在 #env-logger
37 每月下载量
在 3 个crate中使用
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, {
...
许可证
许可协议为以下之一:
- Apache License 2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
依赖项
~4MB
~79K SLoC