如何为 pytest 创建 HTML 报告?



我使用 pytest 框架在 eclipse 中创建了一个项目

class TestClass(object):
def test_one(self):
x = "this"
assert 'h' in x
def test_two(self):
x = "hello"
assert hasattr(x, 'check')

现在,我想为我的项目创建一个 html 报告。我做了以下工作:

  • 安装了 html 插件
  • 在模块中编写了以下代码 conftest.py
import pytest
@pytest.mark.hookwrapper
def pytest_runtest_makereport(item, call):
pytest_html = item.config.pluginmanager.getplugin('html')
outcome = yield
report = outcome.get_result()

当我进行测试时,我没有收到任何报告。以下是我预期的结果,但没有生成报告

> ============================= test session starts ============================= platform win32 -- Python 3.6.5, pytest-3.6.0, py-1.5.3, pluggy-0.6.0 rootdir: D:Eclipse1TFCProject,
> inifile: plugins: ordering-0.5, metadata-1.7.0, html-1.19.0 collected
> 2 items
> 
> TFCPackagepycheck.py .F                                              
> [100%]
> 
> ================================== FAILURES ===================================
> _____________________________ TestClass.test_two self = <TFCPackage.pycheck.TestClass object at 0x03778AF0>
def test_two(self):
x = "hello"
>       assert hasattr(x, 'check')
E       AssertionError: assert False
E        +  where False = hasattr('hello', 'check')
TFCPackagepycheck.py:13: AssertionError
===================== 1 failed, 1 passed in 0.41 seconds ======================

请指导我,因为我是 pytest 的新手

如果要在 Eclipse IDE 中执行此操作,则需要更改 Eclipse 配置。

  1. 打开配置

    窗口 -> 首选项 -> PyDev -> PyUnit

  2. 在"测试运行程序的参数"部分添加此参数

    --html= 报告名称.html

将上面的报告名称替换为您选择的报告名称。

请注意,此设置是全局的,每次在 eclipse 中运行 pytest 时都会生成报告。

相关内容

  • 没有找到相关文章

最新更新