我是pytest
的新手。我正在寻找一种在pytest中生成html日志的方法。我有一种方法也可以生成html日志
pytest script.py--html=report.html
正在工作。但是问题是html报告路径。我可以在脚本中存在的var中提供html路径吗?
答案 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
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。