Bello-Code:
@pytest.mark.hookwrapper
def pytest_runtest_makereport(item, call):
outcome = yield
report = outcome.get_result()
if call.when == 'call':
extras = getattr(report, 'extras', [])
c = item.user_properties[0].to_html(full_html=False, div_id='my_plot', include_plotlyjs='cdn', include_mathjax='cdn')
extras.append(pytest_html.extras.html("Additional HTML 1"))
extras.append(pytest_html.extras.html(c))
extras.append(pytest_html.extras.html("Additional HTML 2"))
report.extras = extras
Теперь, когда открывает отчет в Chrome, сюжет не отображается, но, по -видимому, присутствует в сгенерированном отчете HTML, а также в отношении дополнительных HTML 1 и Дополнительные HTML 2 Заполнители:
Один из способов работы - это создание изображения графика и внедрять его в отчет, но, поскольку графики довольно сложны, я бы действительно был бы интерактивным, чтобы быть способным анализировать специфические попоры. веб -технологий, поэтому любая помощь будет высоко оценена!

Изменить на 23.06.2025
Для воспроизведения необходимы два файла, файл, содержащий тесты ( test_dummy_plot.py здесь) и файл конфигурации тестирования conftest.py . test_dummy_plot.py :
Код: Выделить всё
import plotly.graph_objects as go
import pytest
from plotly.subplots import make_subplots
def test_example(request: pytest.FixtureRequest):
fig = make_subplots()
fig.add_trace(go.Scatter(x=[1, 2, 3, 4], y=[1, 2, 4, 8]))
request.node.user_properties.append(fig)
import pytest
import pytest_html
@pytest.mark.hookwrapper
def pytest_runtest_makereport(item, call):
outcome = yield
report = outcome.get_result()
if call.when == 'call':
extras = getattr(report, 'extras', [])
fig = item.user_properties[0]
c = fig.to_html(full_html=False, div_id='my_plot', include_plotlyjs=True)
fig.write_html('my_plot.html') # export the figure to HTML to validate its content (just for debugging).
extras.append(pytest_html.extras.html("Additional HTML 1")) # only for debugging.
extras.append(pytest_html.extras.html(c))
extras.append(pytest_html.extras.html("Additional HTML 2")) # only for debugging.
report.extras = extras
< /code>
Затем, при запуске тестов с python -m pytest -html = отчет.html. Цель)
При открытии отчета о тестировании report.html мы видим, что два HTML -заполнители Дополнительные HTML 1/2 присутствуют, но не участок (или, по крайней мере, не получают).>
Подробнее здесь: https://stackoverflow.com/questions/796 ... est-report