Trace

Используется для трассировки выполнения программ. Можно вызывать непосредственно из командной строки с различными опциями

Пример: python -m trace -t example.py выведет построчно отображение кода по мере выполнения (в ряде случаев полезно отфильтровать тарсировку импортов - это можно задать через cli). Трасировщик выведет операции настройки, а затем вход в каждую функцию, включая модули, в котором находятся функции, и строки исходного файла по мере их выполнения.

Применение параметра --count создает отчет с расширением .cover о покрытии кода, в котором будет информация о том, какие строки выполнены, а какие пропущены. Файл отчета создается отдельно для каждого файла python скрипта. Кроме того, можно создавать объединенные файлы покрытия, прогоняя несколько разных параметров запуска. Так-же реализован отчет о взаимных вызовах функций.

У модуля есть программный интерфейс, который в общем случае сводится к созданию инстанса Trace, который определяет контекст трассировки и другие опции.

import trace
from trace_example import example

tracer = trace.Trace(count=False, trace=True)
tracer.run('example(42)')

или так:

import trace
from trace_example import example

tracer = trace.Trace(count=False, trace=True)
tracer.runагтс(example, 42)

Программный интерфейс так-же позволяет писать отчет в файл .cover

import sys
import trace

# create a Trace object, telling it what to ignore, and whether to
# do tracing or line-counting or both.
tracer = trace.Trace(
    ignoredirs=[sys.prefix, sys.exec_prefix],
    trace=0,
    count=1)

# run the new command using the given tracer
tracer.run('main()')

# make a report, placing output in the current directory
r = tracer.results()
r.write_results(show_missing=True, coverdir=".")

Смотри еще: