我使用 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 配置。
打开配置
窗口 -> 首选项 -> PyDev -> PyUnit
在"测试运行程序的参数"部分添加此参数
--html= 报告名称.html
将上面的报告名称替换为您选择的报告名称。
请注意,此设置是全局的,每次在 eclipse 中运行 pytest 时都会生成报告。