Py.test: показать локальные переменные в Jenkins
До сих пор мы вызываем py.test
через Jenkins.
Если тест завершился неудачно, мы видим обычную stacktrace, подобную этой
Traceback (most recent call last):
File "/home/u/src/foo/bar/tests/test_x.py", line 36, in test_schema_migrations
errors, out))
AssertionError: Unknown output: ["Migrations for 'blue':", ...]
Было бы здорово, если бы я мог видеть локальные переменные, например, на странице отладки django (см. https://djangobook.com/wp-content/uploads/figure2_3a.png).
.... Но они должны быть видны только в том случае, если я хочу их увидеть. Я предполагаю, что это означает, что мне нужен другой формат, чем текст. Может быть, HTML?
Есть ли способ включить это?
Я никогда не использовал инструмент Sentry. Но AFAIK может отображать хорошие трассировки с локальными переменными.
Ответы
Ответ 1
Используйте параметр -l
/--showlocals
:
pytest --showlocals # show local variables in tracebacks
pytest -l # show local variables (shortcut)
Пример:
def foo():
a = 1
> assert 0
E assert 0
a = 1
test_foo.py:8: AssertionError
см. подробнее в документе.