Ответ 1
Это можно сделать, но не напрямую. Я просто добавил добавил пример в документы. Вероятно, имеет смысл сделать это проще по умолчанию, т.е. Не требует использования крючка conftest.py. Если вы согласны, напишите об ошибке.
Я использую Selenium с PYTEST для тестирования сайта. Я бы хотел сделать снимок экрана на странице всякий раз, когда тест завершился неудачно (и только когда он не прошел).
Есть ли способ, которым я могу это сделать? Документы тихие, когда дело доходит до этого (или я не могу найти его). Я бы предположил, что это будет что-то вроде
request.function.failed
и он вернет логическое значение или что-то еще.
Это то, что я хотел сделать:
@pytest.fixture()
def something(request):
if request.function.failed:
print "I failed"
Это будет добавлено в финализатор, конечно. Это можно сделать? Использование pytest 2.3.3
Спасибо.
Это можно сделать, но не напрямую. Я просто добавил добавил пример в документы. Вероятно, имеет смысл сделать это проще по умолчанию, т.е. Не требует использования крючка conftest.py. Если вы согласны, напишите об ошибке.
Мне приходилось делать что-то подобное на уровне каждого модуля. Изучив существующие решения, я был немного удивлен их сложностью. Вот подход, который я придумал для решения этой проблемы:
import pytest
@pytest.fixture(scope="module", autouse=True)
def failure_tracking_fixture(request):
tests_failed_before_module = request.session.testsfailed
yield
tests_failed_during_module = request.session.testsfailed - tests_failed_before_module
Он может быть изменен, чтобы сделать то, что вы хотите, сделав прибор одним из функций уровня.
Надеюсь, это поможет!