<p>您基本上希望跟踪函数执行过程中发生的事情;您只需使用<code>trace</code>(<a href="https://docs.python.org/3/library/trace.html" rel="nofollow noreferrer">read more here</a>),如下所示:</p>
<pre><code>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)
def test():
if True:
if False:
print('one')
else:
print('two')
# run the new command using the given tracer
tracer.run('test()')
# make a report, placing output in the current directory
r = tracer.results()
r.write_results(show_missing=True, coverdir=".")
</code></pre>
<p>输出:</p>
<pre><code>>>>>>> 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)
>>>>>> def test():
if True:
if False:
print('here')
else:
1: print('here2')
# run the new command using the given tracer
>>>>>> tracer.run('test()')
# make a report, placing output in the current directory
>>>>>> r = tracer.results()
>>>>>> r.write_results(show_missing=True, coverdir=".")
</code></pre>
<p>上面将生成带有跟踪结果的<code>.cover</code>文件;否则,你就得玩弄琴弦和/或一系列动作,并以此为路径</p>
<p>最简单的方法:</p>
<pre><code>def function():
path = 'function'
if condition1:
path += '.condition1'
if condition2:
path += '.condition2'
else:
path += '.not(condition2)'
else:
path += '.not(condition1)'
</code></pre>
<p>这是一个例子;它不具备可扩展性,但能满足微小的需求</p>