如何将pytest-html单个html报告结果文件的所有行默认设置为折叠状态?

时间:2018-07-26 05:59:50

标签: python-3.x pytest pytest-html

我使用pytest运行程序从自动化测试框架(Selenium和RestAPI测试)获取结果输出。我使用pytest-html插件在测试结束时生成单页html结果文件。我使用以下命令(从活动的VirtEnv会话)启动测试运行。

python -m pytest -v --html="api_name_test.html" --self-contained-html

(这有点复杂,因为我使用powershell脚本来运行它并提供带有日期时间标记的结果文件名,并在完成时通过电子邮件发送该文件,但这实质上是上面的命令)

当生成报告并打开此报告html时,我发现所有未通过的测试都已扩展。我要这样做,以便默认情况下所有行都折叠(失败,XFailed,错误等。)。

html result with some files expanded

我的项目在目录根目录中包含一个conftest.py文件和一个pytest.ini文件,在其中我指定了测试脚本的目录

在我最简单的项目的conftest.py文件中,我有一个可选的钩子来获取测试的目标URL并将其放在报告摘要中:

import pytest
from py._xmlgen import html
import os
import rootdir_ref
import simplejson

@pytest.mark.optionalhook
def pytest_html_results_summary(prefix):
    theRootDir = os.path.dirname(rootdir_ref.__file__)
    credentials_path = os.path.join(theRootDir, 'TestDataFiles', 'API_Credentials.txt')
    target_url = simplejson.load(open(credentials_path)).get('base_url')
    prefix.extend([html.p("Testing against URL: " + target_url)])

Github页面提到显示查询可用于折叠具有各种结果的行,但没有提及输入此信息的位置。 https://github.com/pytest-dev/pytest-html

“默认情况下,“结果”表中的所有行都将被展开,除了已通过的行。可以使用查询参数来自定义此行为:?collapsed = Passed,XFailed,Skipped”

目前,我不确定?collapsed=...行是否在命令行中,还是将conftest作为挂钩,还是我需要编辑pytest-随附的默认style.css或main.js? html插件? (我也不熟悉css,只知道少量的html)。我假设它在conftest.py文件中作为一个钩子出现,但并不太了解如何应用。

1 个答案:

答案 0 :(得分:1)

https://pytest-html.readthedocs.io/en/latest/user_guide.html#display-options

自动折叠表格行

默认情况下,将扩展结果表中的所有行,但已通过的行除外。

可以使用查询参数自定义此行为:?collapsed=Passed,XFailed,Skipped 或通过在配置文件(pytest.ini、setup.cfg 等)中设置 render_collapsed。

[pytest] render_collapsed = True

注意:与查询参数不同,设置 render_collapsed 将影响所有状态。