Можно ли сгенерировать HTML-отчет Pytest по таймауту? - PullRequest
0 голосов
/ 19 ноября 2018

Я использую pytest и хочу изящно объединить два плагина, pytest-html и pytest-timeout. Я работаю в Windows, поэтому мне нужно использовать потоковый метод тайм-аута от pytest-timeout, который вызывает остановку всего тестирования. Я хочу, чтобы HTML из pytest-html был сгенерирован в этом случае, но я не был уверен в правдоподобности этого из-за проблем иерархии с прерыванием.

ОБНОВЛЕНИЕ, прогресс на данный момент: Я добавил в conftest.py функцию, которая вручную генерирует html перед каждым тестом, с данными сеанса, существующими на тот момент. Это обходной метод генерации html до истечения времени ожидания, а не только в конце тестирования, просто потому, что html постоянно обновляется на протяжении всего процесса.

@pytest.fixture(scope='function', autouse=True)
def test_blackbox(request):
    session = request.node
    html = request.config._html
    report_content = html._generate_report(session)
    html._save_report(report_content)

Я мог бы добавить аналогичный код к методу timeout_timer timeout, который является функцией, которая вызывается, когда заканчивается поток таймера, но я хочу избежать непосредственного редактирования самого плагина. Я отвечу, как только выполню свое первоначальное задание.

...