<p>由于版本3.3,<code>pytest</code>支持到终端和文件的实时日志记录。测试模块示例:</p>
<pre><code>import logging
import os
def test_taintedKernel():
logging.info('checking for tainted kernel')
output = os.system('cat /proc/sys/kernel/tainted')
assert output == 0, 'tainted kernel found'
</code></pre>
<p>日志记录到文件的配置可以在<code>pytest.ini</code>中完成:</p>
<pre><code>[pytest]
log_file = my.log
log_file_level = DEBUG
log_file_format = %(asctime)s [%(levelname)8s] %(message)s (%(filename)s:%(lineno)s)
log_file_date_format=%Y-%m-%d %H:%M:%S
</code></pre>
<p>像往常一样运行测试:</p>
<pre><code>$ pytest
======================================================= test session starts ========================================================
...
collected 1 item
test_spam.py . [100%]
===================================================== 1 passed in 0.01 seconds =====================================================
</code></pre>
<p>现在检查写入的日志文件:</p>
<pre><code>$ cat my.log
2019-07-12 23:51:41 [ INFO] checking for tainted kernel (test_spam.py:6)
</code></pre>
<p>有关向终端和日志文件发送实时日志的更多示例,请查看我对<a href="https://stackoverflow.com/a/51633600/2650249">Logging within py.test tests
</a>的回答。</p>
<p>引用:<code>pytest</code>文档中的<a href="https://docs.pytest.org/en/latest/logging.html#live-logs" rel="nofollow noreferrer">Live Logs</a>部分。</p>