diff --git a/src/pytest_html/basereport.py b/src/pytest_html/basereport.py index 8a85f058..f1bc9e6c 100644 --- a/src/pytest_html/basereport.py +++ b/src/pytest_html/basereport.py @@ -6,6 +6,7 @@ import math import os import re +import time import warnings from collections import defaultdict from html import escape @@ -33,6 +34,7 @@ def __init__(self, report_path, config, report_data, template, css): self._reports = defaultdict(dict) self._report = report_data self._report.title = self._report_path.name + self._suite_start_time = time.time() @property def css(self): @@ -173,7 +175,8 @@ def pytest_sessionstart(self, session): self._report.table_header = _fix_py(headers) self._report.running_state = "started" - self._generate_report() + if self._config.getini("generate_report_on_test"): + self._generate_report() @pytest.hookimpl(trylast=True) def pytest_sessionfinish(self, session): @@ -184,6 +187,8 @@ def pytest_sessionfinish(self, session): session=session, ) self._report.running_state = "finished" + suite_stop_time = time.time() + self._report.total_duration = suite_stop_time - self._suite_start_time self._generate_report() @pytest.hookimpl(trylast=True) @@ -223,8 +228,6 @@ def pytest_runtest_logreport(self, report): else: self._reports[report.nodeid][key] = [report] - self._report.total_duration += report.duration - finished = report.when == "teardown" and report.outcome != "rerun" if not finished: return