1

我正在尝试将屏幕截图添加到来自自动测试的 pytest-html 报告中

我已添加到 plugin.py:

def pytest_runtest_makereport(__multicall__, item):
    report = __multicall__.execute()
    extra = getattr(report, 'extra', [])
    if report.when == 'call':
        xfail = hasattr(report, 'wasxfail')
        if (report.skipped and xfail) or (report.failed and not xfail):
            url = TestSetup.selenium.current_url
            report.extra.append(extras.url(url))
            screenshot = TestSetup.selenium.get_screenshot_as_base64()
            report.extra.append(extras.image(screenshot, 'Screenshot'))
            html = TestSetup.selenium.page_source.encode('utf-8')
            report.extra.append(extra.text(html, 'HTML'))
            report.extra.append(extra.html(html.div('Additional HTML')))
        report.extra = extra
    return report

但是跑步的时候

py.test --html=report.html filename.py 

我明白了

INTERNALERROR>   File "C:\Python27\lib\site-packages\pytest_html\plugin.py", line 288, in pytest_runtest_makereport
INTERNALERROR>     report = __multicall__.execute()
INTERNALERROR> AttributeError: 'HTMLReport' object has no attribute 'execute'

它从何而来?

4

1 回答 1

1

问题是由于我在类中添加了 pytest_runtest_makereport 引起的。应该在外面。关闭

于 2016-02-12T15:38:44.437 回答