在 libtest_mimic 中从命令行设置跟踪日志级别

问题描述 投票:0回答:1

我有一个 Rust 项目,其中的测试使用

libtest_mimic
来运行用 Cucumber 编写的测试。在整个测试过程中,
tracing
-crate 用于记录日志。理想情况下,我想通过命令行设置日志级别,但是
libtest_mimic
有自己的
Arguments
结构,它使用
let args: Arguments = Arguments::from_args();
解析命令行参数。 问题是
Arguments::from_args()
不允许任何不在参数内的命令行参数。如果我在测试规范之后在命令行中添加任何内容(例如
--loglevel WARN
),我会收到一个错误,这是无法识别的(因为它不在
Arguments
结构中)。所以我必须修改命令行-args 以某种方式在 libtest_mimic 处理之前删除
--lovlevel WARN
部分。

这看起来相当错误和丑陋,我想也许有更好的方法,但我不知何故错过了。 有谁知道如何在 libtest_mimic-tests 中使用跟踪?

testing rust trace
1个回答
0
投票

问题是

Arguments::from_args()
不允许任何不在参数内的命令行参数。

Arguments
实现了
clap::Args
,因此您可以将其嵌入到另一个
clap
参数结构中:

#[derive(clap::Parser)]
struct MyArguments {
    #[command(flatten)]
    test_args: libtest_mimic::Arguments,
    
    #[arg(long)]
    log_level: Option<String>,
}
© www.soinside.com 2019 - 2024. All rights reserved.