13

鼻子测试 --with-profile --profile-stats-file 输出

输出不能被runsnake读取,因为nosetest使用hotshot,如果我想生成一个可以用runsnake读取的文件,我需要把它转换成这样:

st = hotshot.stats.load('输出')

st.dump_stats('output_new')

我可以直接使用 cProfile 运行测试以使用 runnake 读取吗?

4

5 回答 5

11

根据@squid 的答案,您可以使用一个名为nose的插件nose-cprof来用cProfile 替换nose 默认分析器hotshot。

要安装它:

pip install nose-cprof

然后像这样调用鼻子:

nosetests --with-cprofile

它应该生成一个 cProfile 输出文件,然后您可以使用runsnakerun.

于 2016-02-22T20:25:27.357 回答
4

@cihanpesend 的回答对我来说不太奏效(cProfile 找不到'nosetests'),但我确实在 Linux 上使用:

python -m cProfile -o profile.out `which nosetests` .

生成的输出在 runnake 中运行良好。

(大概在 Windows 上,您可以替换which nosetests为您的 nosetests 顶级 python 脚本的硬编码路径。)

认为你是对的,nosetests 的热门分析器的输出与 runnake 不兼容。当然,对我来说,这两个开箱即用也不是很好。

于 2013-07-18T14:31:23.390 回答
2

我没有关于nosetest 的信息,除了它是python 项目。所以;

python -m cProfile -o outputfile nosetest

然后,

runsnake outputfile

RunSnakeRun 对于可视化分析器非常有用。

注意:要运行runsnake,必须安装 wx 和 numpy。

更新:来自 omikron 的评论;runsnakerun 不支持 python3 配置文件输出。(我没试过)

于 2013-06-03T14:56:30.813 回答
1

或者你可以试试nose-cprof插件: https ://github.com/msherry/nose-cprof 

它用 cProfile 代替 hotshot

于 2013-10-22T17:09:50.910 回答
0

pyprof2calltree

$ pip install pyprof2calltree
$ nosetests --with-cprofile --profile-stats=profile.out tests/
$ pyprof2calltree -i profile.out -k

xdot

$ sudo apt install xdot
$ gprof2dot -f pstats profile.out | dot -Tpng -o profile.png
于 2019-03-14T12:47:51.090 回答