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

Python 有没有办法知道pytest html何时创建实际的html文件?,python,pytest,pytest-html,Python,Pytest,Pytest Html,在通过pytest运行测试之后,我想知道何时创建html和资产文件夹。有没有办法知道文件实际创建的时间?我曾尝试在pycharm中使用断点,但无法获得实际创建文件的时间 知道文件何时创建的关键在于,我想将其复制到zip文件中。HTML报告是在pytest\u sessionfinishhookimpl: def pytest_sessionfinish(self, session): report_content = self._generate_report(session)

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


知道文件何时创建的关键在于,我想将其复制到zip文件中。

HTML报告是在
pytest\u sessionfinish
hookimpl:

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

如果您想在自己的测试运行中操作报表文件,可以通过添加自己的
pytest\u 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')

HTML报告在
pytest_sessionfinish
hookimpl:

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

如果您想在自己的测试运行中操作报表文件,可以通过添加自己的
pytest\u 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')

为什么不在测试完成后再做呢;它主要是将压缩过程保存在实际的测试文件中。因为我需要一直收集文件并压缩它们,所以我认为在pytest完成时编写压缩函数并将所有代码保存在测试套件所在的实际模块中是有意义的。不要试图将管道放入同一管道的一部分。使用shell脚本,或者如果它变得复杂,则使用任何CI/CD解决方案。感谢您的建议。我认为有一种简单的方法可以让pytest在创建html报告后执行最后一个操作,但最后似乎没有那么简单,为什么不在测试完成后执行呢;它主要是将压缩过程保存在实际的测试文件中。因为我需要一直收集文件并压缩它们,所以我认为在pytest完成时编写压缩函数并将所有代码保存在测试套件所在的实际模块中是有意义的。不要试图将管道放入同一管道的一部分。使用shell脚本,或者如果它变得复杂,则使用任何CI/CD解决方案。感谢您的建议。我认为有一种简单的方法可以让pytest在创建html报告后执行最后一个操作,但在结尾部分似乎没有那么简单,非常感谢!我编写了一个钩子,但它是在测试完成时触发的,而不是在创建报告时触发的;因此,我的输出包括除实际HTML报告之外的所有文件,非常感谢!我编写了一个钩子,但它是在测试完成时触发的,而不是在创建报告时触发的;因此,我的输出包括除实际HTML报告之外的所有文件