0

pytest-html を介して HTML 出力を生成するテストがあります。

レポートを受け取りましたが、失敗と予想されるイメージへの参照を追加したいと思います。それらをメインの test.py ファイルに保存し、フックを に追加しましたconftest.py

今、これらの画像を関数に渡す方法がわかりません。テストの実行後にフックが呼び出されます。現在、出力ファイルをハードコーディングしており、添付されています。ただし、代わりにテストから画像へのパスを渡したいと思います。特に、通常のフォルダーから別の場所に保存され、名前が異なる可能性があるテストをさらに作成する必要があるためです。

これは、conftest.py にあるフックです。

@pytest.mark.hookwrapper
def pytest_runtest_makereport(item, call):

    timestamp = datetime.now().strftime('%H-%M-%S')

    pytest_html = item.config.pluginmanager.getplugin('html')
    outcome = yield
    report = outcome.get_result()
    extra = getattr(report, 'extra', [])
    if report.when == 'call':
        # Attach failure image, hardcoded...how do I pass this from the test?
        extra.append(pytest_html.extras.image('/tmp/image1.png'))

        # test report html
        extra.append(pytest_html.extras.url('http://www.theoutput.com/'))
        xfail = hasattr(report, 'wasxfail')
        if (report.skipped and xfail) or (report.failed and not xfail):
            # only add additional data on failure
            # Same as above, hardcoded but I want to pass the reference image from the test
            extra.append(pytest_html.extras.image('/tmp/image2.png'))
            extra.append(pytest_html.extras.html('<div>Additional HTML</div>'))
        report.extra = extra

pytest テスト ファイルから、添付するイメージのパスを含む変数をフックに渡すにはどうすればよいですか?

4

1 に答える 1