1 回答
TA贡献1866条经验 获得超5个赞
您可以使用以下方法配置每个测试的日志记录路径set_log_path(尽管请注意,文档认为它是实验性的):
conftest.py
import os
from datetime import datetime
import pytest
@pytest.hookimpl
def pytest_runtest_setup(item):
logging_plugin = item.config.pluginmanager.get_plugin("logging-plugin")
timestamp = datetime.strftime(datetime.now(), '%Y-%m-%d_%H-%M-%S')
logging_plugin.set_log_path(os.path.join('results', f'{item.name}_{timestamp}.log'))
当然,您必须设置正确的根路径(我只是将“结果”放在那里)。这将为每个测试创建一个新的日志文件,并相应配置名称。
您还可以使用该项目的其他属性来组成文件名。如果您想要路径中的测试类名称,如评论中所述,您可以执行以下操作:
...
path = 'results'
if item.cls is not None:
path = os.path.join(path, item.cls.__name__)
logging_plugin.set_log_path(os.path.join(path, f'{item.name}_{timestamp}.log'))
添加回答
举报