2

我已经查看--with-timer--with-profile分析了我的测试,但这些选项要么提供的信息太少,要么提供的信息太多。

例如,如果我有以下测试:

def test_foo():
    do_something()
    do_something_else()

我只想分析每个函数调用或测试中的每一行花费了多长时间。所以输出将是这样的:

   do_something() : .5 seconds
   do_something_else() : .5 seconds
   test_foo() : 1 seconds
4

1 回答 1

1

受此演讲的启发,您可以使用 Xunit 插件并对其 xml 进行后处理

使用 --with-xunit 和以下代码处理nosetests.xml

from xml.etree.cElementTree import parse 
from operator import itemgetter 

elems = parse(open("nosetests.xml")).getiterator("testcase") 
tests = sorted(((e.get("name"), int(e.get("time"))) for e in elems), 
               key=itemgetter(1), reverse=1) 

for test in (test for test in tests if test[1]): 
    print "%s: %s sec" % test 
于 2013-04-04T19:26:57.437 回答