有没有办法知道 pytest-html 何时创建实际的 html 文件?

Is there a way to know when pytest-html create the actual html file?

我想知道在通过 pytest 运行 测试后,html 和资产文件夹何时创建。有没有办法知道文件实际创建的时间?我曾尝试在 pycharm 中使用断点,但我无法获取实际创建文件的时间。

之所以知道文件何时创建,是因为我想将其复制到一个 zip 文件中。

HTML 报告写在pytest_sessionfinish hookimpl:

def pytest_sessionfinish(self, session):
    report_content = self._generate_report(session)
    self._save_report(report_content)

Source.

如果您想在自己的测试中操作报告文件 运行,您可以通过添加自己的 pytest_sessionfinish hookimpl 来实现,例如

import pathlib
import zipfile


def pytest_sessionfinish(session):
    htmlfile = session.config.getoption('htmlpath')
    if htmlfile is None:  # html report not wanted by user
        return
    htmlzip = pathlib.Path(htmlfile).with_suffix('.zip')
    with zipfile.ZipFile(htmlzip, 'w') as zip:
        zip.write(htmlfile)
        zip.write('assets/style.css')