0

我正在使用pytest-html插件生成 html 报告。"pytest --html=report.html"我通过在命令行中执行 pytest 文件。所以生成的html报告的名称和标题就是report.html。我想更改生成报告的标题。请告诉我,如何做到这一点?

4

3 回答 3

2

从 v2.1.0 开始,此插件在将标题添加到报告之前公开了一个挂钩。您可以将其添加到 conftest.py:

def pytest_html_report_title(report):
   report.title = 'your title!'

插件的用户指南中也对此进行了说明。

于 2020-12-16T21:29:31.357 回答
1

在测试的同一文件夹中创建 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 的文件夹中,使用日期而不是静态名称命名

于 2020-01-03T14:00:17.660 回答
1

从我在代码中看到的内容来看,还没有意思只更改报告的标题,它现在被硬编码为

html.h1(os.path.basename(self.logfile))

因此报告标题将始终是报告文件名。我刚刚向项目推送了一个合并请求,以添加一个新的钩子以允许更改标题而不更改文件名,我们将看看它是否被接受。

于 2020-02-26T14:28:39.750 回答