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=".")
Смотри еще: