如何为pytest创建HTML报告?

时间:2018-06-08 12:55:46

标签: python pytest 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:\Eclipse1\TFCProject,
> inifile: plugins: ordering-0.5, metadata-1.7.0, html-1.19.0 collected
> 2 items
> 
> TFCPackage\pycheck.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')

TFCPackage\pycheck.py:13: AssertionError
===================== 1 failed, 1 passed in 0.41 seconds ======================

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

1 个答案:

答案 0 :(得分:1)

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

  
      
  1. 打开配置

         

    窗口 - &gt;偏好 - &gt; PyDev - &gt;的PyUnit

  2.   
  3. 在测试运动员&#34;

    的参数部分中添加此参数      

    - html = reportname.html

  4.   

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

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