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'))
添加回答
舉報