#logging-tracing #tracing #logging #log #api-bindings

test-pretty-log

在运行测试前初始化日志和/或跟踪基础设施的 #[test] 属性的替代品

2 个不稳定版本

0.6.2 2024年1月25日
0.6.1 2024年1月25日
0.6.0 2024年1月25日
0.5.1 2024年1月16日
0.5.0 2024年1月16日

#198 in 测试

每月下载 47 次

Apache-2.0 OR MIT

12KB
73

test-pretty-log

Crates.io Version

test-pretty-log 是一个库,用于自动初始化 Rust 测试的日志和/或跟踪。

它基于 test-log,并允许日志使用漂亮的颜色!:3

请注意,此库已移除对 log 的支持,并完全专注于 tracing。计划在以后重新引入对 log 的支持。

用法

该库提供自定义的 #[test] 属性,当用于运行特定测试时,会预先初始化 tracing

示例

因此,使用方法很简单,只需导入并使用此属性

use test_pretty_log::test;

#[test]
fn it_works() {
  info!("Checking whether it still works...");
  assert_eq!(2 + 2, 4);
  info!("Looks good!");
}

当然,也可以通过仅用自定义属性注释一组测试来初始化所选测试的日志

#[test_pretty_log::test]
fn it_still_works() {
  // ...
}

您还可以堆叠另一个属性。例如,假设您使用 [#[tokio::test]][tokio-test] 来运行异步测试

use test_log::test;

#[test(tokio::test)]
async fn it_still_works() {
  // ...
}

最后,您可以通过参数禁用测试的着色

use test_log::test;

#[test(color=false)]
fn no_more_colored_output() {
  // :blobfoxsad:
}

日志配置

与运行 cargo test 时一样,输出默认由框架捕获,仅在测试失败时显示。可以使用 --nocapture 参数来覆盖此设置。例如:

$ cargo test -- --nocapture

此外,RUST_LOG 环境变量得到尊重,并可用于影响要工作的日志级别(以及其他)。有关更多信息,请参阅 [env_logger 文档][env-docs-rs]。

RUST_LOG_SPAN_EVENTS 环境变量可用于配置跟踪订阅者,在跨度生命周期中的各个点记录合成事件。将该变量设置为要查看的事件的逗号分隔列表。例如,RUST_LOG_SPAN_EVENTS=fullRUST_LOG_SPAN_EVENTS=new,close

有效事件包括 newenterexitcloseactivefull。有关事件含义的详细信息,请参阅 [tracing_subscriber 文档][tracing-events-docs-rs]。

RUST_LOG_COLOR 环境变量可用于配置跟踪订阅者输出ANSI颜色,以便打印彩色日志。默认情况下,此功能已启用。有效值是常见的布尔表示(ffalseoff0ttrueon1)。宏的 color 参数覆盖此设置。

RUST_LOG_FORMAT 环境变量可用于配置跟踪订阅者的格式化程序。默认情况下,它设置为 pretty。有效值是 prettyfullcompact

依赖项

~4.5–6.5MB
~107K SLoC