源码

首页 » 归档 » 源码 » python – py.test将消息和测试结果/断言记录…

python – py.test将消息和测试结果/断言记录…


我现在开始使用py.test进行新项目.我们正在配置Linux服务器,我需要编写一个脚本来检查这些服务器的设置和配置.我认为py.test是实现这些测试的好方法,直到现在它才能正常工作.

我现在面临的问题是,在这些测试结束时我需要一个日志文件,显示每个测试的一些日志消息和测试结果.对于日志消息,我使用logger:

logging.basicConfig(filename='config_check.log', level=logging.INFO)
pytest.main()
logging.info('all done')

作为示例测试我有这个:

def test_taintedKernel():
    logging.info('checking for tainted kernel')
    output = runcmd('cat /proc/sys/kernel/tainted')
    assert output == '0', 'tainted kernel found'

所以在我的日志文件中我想要一个像这样的输出:

INFO:root:checking for tainted kernel
ERROR:root:tainted kernel found
INFO:root:next test
INFO:root:successful
INFO:root:all done

但是我无法将测试结果输入到日志文件中,而是在测试后获得stdout上的标准输出:

======================================= test session starts =======================================
platform linux2 -- Python 2.6.8 -- py-1.4.22 -- pytest-2.6.0
collected 14 items 

test_basicLinux.py .............F

============================================ FAILURES =============================================
_______________________________________ test_taintedKernel ________________________________________

    def test_taintedKernel():
        logging.info('checking for tainted kernel')
        output = runcmd('cat /proc/sys/kernel/tainted')
>       assert output == '0', 'tainted kernel found'
E       AssertionError: tainted kernel found

test_basicLinux.py:107: AssertionError
=============================== 1 failed, 13 passed in 6.07 seconds ===============================

对于我的脚本用户来说,这可能会让人感到困惑.我试图进入logger和pytest_capturelog,因为这里经常提到它,但我确实做错了,因为我没有得到它.也许只是缺乏理解这是如何工作的.希望你能给我一些暗示.如果这里遗漏了什么,请告诉我.

在此先感谢您的帮助,

斯蒂芬

(0)

本文由 投稿者 创作,文章地址:https://blog.isoyu.com/archives/python-py-testjiangxiaoxiheceshijieguo-duanyanjilu.html
采用知识共享署名4.0 国际许可协议进行许可。除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为:11月 11, 2019 at 03:42 下午

热评文章