Я создаю отчет в формате html, используя плагин pytest-html
. Я запускаю файл pytest, указав "pytest --html=report.html"
в командной строке. Итак, имя и заголовок сгенерированного html-отчета — report.html. Я хочу изменить название сгенерированного отчета. Пожалуйста, дайте мне знать, как это сделать?
Как переименовать заголовок HTML-отчета, сгенерированного плагином pytest-html?
Ответы (3)
создайте файл conftest.py в той же папке, что и тест. этот файл используется для настройки pytest. поместите этот фрагмент внутрь
def pytest_html_results_summary(prefix, summary, postfix):
prefix.extend([html.h1("A GOOD TITLE")])
если вам нужно изменить имя файла отчета html, вы можете попробовать что-то вроде этого
# @pytest.hookimpl(tryfirst=True)
def pytest_configure(config):
# to remove environment section
config._metadata = None
if not os.path.exists('reports'):
os.makedirs('reports')
config.option.htmlpath = 'reports/' + datetime.now().strftime("%d-%m-%Y %H-%M-%S") + ".html"
мой пример поместит файл report.html в папку с именем reports с датой вместо статического имени
Из того, что я вижу в коде, пока нет возможности изменить только заголовок отчета, на данный момент он жестко запрограммирован как
html.h1(os.path.basename(self.logfile))
Таким образом, заголовок отчета всегда будет именем файла отчета. Я только что отправил в проект запрос на слияние, чтобы добавить новый хук, позволяющий изменить заголовок без изменения имени файла, посмотрим, будет ли он принят.
Начиная с версии 2.1.0, этот подключаемый модуль предоставляет ловушку вызывается перед добавлением заголовка в отчет. Вы можете добавить это в conftest.py:
def pytest_html_report_title(report):
report.title = 'your title!'
Это также объясняется в Руководстве пользователя подключаемого модуля.