当使用Python的unittest模块作为testrunner时,如何在测试之前运行初始化代码?

Pio*_*ost 5 python logging unit-testing

在运行库提供的测试之前,库的用户如何运行自己的初始化代码(例如设置记录器的调试级别)?Python的unittest模块用作testrunner.

hpk*_*k42 2

您可以尝试使用 pytest 来运行单元测试。如果这有效(许多基于单元测试的测试套件都有效),那么您可以创建一个小模块,例如“mymod.py”,定义一个 pytest 配置挂钩:

# content of mymod.py
def pytest_configure():
    import logging
    logging.getLogger().setLevel(logging.WARN)
Run Code Online (Sandbox Code Playgroud)

如果你现在像这样执行 py.test :

$ py.test -p mymmod --pyargs mylib
Run Code Online (Sandbox Code Playgroud)

然后将在“mylib”包中搜索测试,并在运行它们之前修改日志记录级别。“-p”选项指定要加载的插件,“--pyargs”告诉 pytest 首先尝试导入参数,而不是将它们视为目录或文件名(默认)。

欲了解更多信息:http://pytest.orghttp://pytest.org/latest/unittest.html

HTH,霍尔格