我们能否从脚本中的变量传递pytest中的html日志路径

时间:2018-08-06 08:35:41

标签: python pytest

我是pytest的新手。我正在寻找一种在pytest中生成html日志的方法。我有一种方法也可以生成html日志

pytest script.py--html=report.html

正在工作。但是问题是html报告路径。我可以在脚本中存在的var中提供html路径吗?

2 个答案:

答案 0 :(得分:2)

如果只想生成HTML报告而不必每次都输入--html参数,则可以将其保存在配置文件中。创建一个名为pytest.ini的文件,其内容为:

[pytest]
addopts=--html my_report.html

现在运行pytest将始终在my_report.html文件中生成HTML报告。

但是,如果要使用通过代码设置的动态名称,则需要覆盖config.option.htmlpath属性。在根目录中创建文件conftest.py,并在其中添加pytest_configure钩子:

import pytest


default_html_path = 'my_report.html'

@pytest.hookimpl(tryfirst=True)
def pytest_configure(config):
    if not config.option.htmlpath:
        config.option.htmlpath = default_html_path

pytest_configure是一个挂钩,它将在测试开始之前运行。如果没有从命令行提供--html参数(if检查),则html报告文件路径将设置为default_html_path变量的值。如果您需要动态解析报告名称,请在此处执行。

答案 1 :(得分:1)

在检查代码后,您可以使用pytest-html工具生成HTML格式报告。 在pytest-html处遵循以下路径:

pytest .\Desktop\demo.py --html=F:\tmp\report.html

enter image description here

pytest-html不支持从脚本传递html路径。

您可以尝试使用pytest-cov,它可以通过.coveragerc文件配置html路径。

http://pytest-cov.readthedocs.io/en/latest/config.html 组态 该插件提供了添加到pytest的干净的最小命令行选项集。要进一步控制覆盖范围,请使用coverage配置文件。

例如,如果要测试的目录树中包含测试,则可以通过使用设置了忽略选项的.coveragerc文件排除测试,如果需要的话:

py.test --cov-config .coveragerc
        --cov=myproj
        myproj/tests/

.coveragerc文件包含文件文件的地方:

[run]
omit = tests/*

有关详细信息,请参阅coverage配置文件文档。

https://coverage.readthedocs.io/en/latest/config.html

[html]

HTML报告特有的值。 [report]部分中的值在适当的情况下也适用于HTML输出。

directory(字符串,默认为“ htmlcov”):写入HTML报告文件的位置。

extra_css(字符串):要应用于HTML报告的CSS文件的路径。该文件将被复制到HTML输出目录中。不要将其命名为“ style.css”。此CSS是对通常使用的CSS的补充,不过您可以根据需要覆盖许多规则。

title(字符串,默认为“覆盖率报告”):用于报告的标题。请注意,这是文本,而不是HTML。