以编程方式访问nose详细程度

4 投票
2 回答
956 浏览
提问于 2025-04-17 19:55

我有一些测试,它们会把日志信息输出到标准输出(stdout),我想根据nose运行时的详细程度来改变我测试脚本中的日志级别。

我该如何在正在运行的测试中访问nose实例的详细程度呢?

2 个回答

1

这有点像小技巧,但你可以找出当前测试运行器正在使用哪个 nose.config.Config 对象,然后查看它的 config.verbosity 属性。

import nose.config
def test_checkverbosity():
    import gc
    for obj in gc.get_objects():
        if isinstance(obj, nose.config.Config):
            break
    print obj.verbosity
    assert False
1

看起来在nose中处理这个问题的标准方法是,在你的测试中使用logger框架,然后通过--logging-level选项来控制要捕获的日志级别。

默认情况下,nose会捕获测试中产生的所有日志,但你可以使用--logging-filter这个配置参数来指定一个过滤器。

撰写回答