Как показать, почему некоторые тесты пропускаются при использовании py.test?

Я использую skipIf() из unittest для пропуска тестов в определенных условиях.

@unittest.skipIf(condition), "this is why I skipped them!")

Как мне указать py.test отображать условия пропуска?

Я знаю, что для unittest мне нужно включить подробный режим (-v), но тот же параметр, добавленный в py.test, увеличивает подробность, но по-прежнему не отображает причины пропуска.


person sorin    schedule 21.11.2012    source источник


Ответы (2)


Когда вы запускаете py.test, вы можете передать -rsx, чтобы сообщить о пропущенных тестах.

От py.test --help:

-r chars            show extra test summary info as specified by chars
                    (f)ailed, (E)error, (s)skipped, (x)failed, (X)passed.

Также ознакомьтесь с этой частью документации о пропуске: http://doc.pytest.org/en/latest/skipping.html

person todd    schedule 21.11.2012

Краткий ответ:

pytest -rs

Это покажет дополнительную информацию о пропущенных тестах.

Подробный ответ:

В дополнение к ответу @ToddWilson были добавлены следующие символы: p и P (2.9. 0), a (4.1.0) и A (4.5.0). Подробная информация о пропущенных и неудачных тестах по умолчанию не отображается, чтобы не загромождать вывод. Вы можете использовать флаг -r среди следующих символов:

  • (f)больной
  • (E)ошибка
  • (s)пропущено
  • (x)не удалось
  • (X)прошло
  • (p)в заднице
  • (P)осел с выходом
  • (a)все, кроме пройденного (p/P)
  • (A)ll.

Предупреждения включены по умолчанию, значение по умолчанию — fE.

person lmiguelvargasf    schedule 07.07.2020