Я использую 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
, который является функцией, которая вызывается, когда заканчивается поток таймера, но я хочу избежать непосредственного редактирования самого плагина. Я отвечу, как только выполню свое первоначальное задание.