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

см. подробнее в документе.