NOSETEST --with-profile --profile-stats-file の出力
ノーズテストはホットショットを使用するため、runsnake で出力を読み取ることができません。runsnake で読み取ることができるファイルを生成したい場合は、次のように変換する必要があります。
st = hotshot.stats.load('出力')
st.dump_stats('output_new')
runsnake で読み取るために、cProfile で直接テストを実行できますか?
@cihanpesendの答えはうまくいきませんでした(cProfileは「nosetests」を見つけることができませんでした)が、次を使用してLinuxで成功しました:
python -m cProfile -o profile.out `which nosetests` .
結果の出力は、runsnake で正常に動作します。
which nosetests(おそらく Windows では、nosetests の最上位の Python スクリプトへのハードコードされたパスに置き換えることができます。)
ノーズテストのホットショットプロファイラーからの出力がrunsnakeと互換性がないというのは正しいと思います。確かに、私にとっても、最初からこの 2 つが一緒にうまく機能するわけではありません。
それがpythonプロジェクトであることを除いて、ノーズテストに関する情報はありません。そう;
python -m cProfile -o outputfile nosetest
それで、
runsnake outputfile
RunSnakeRun は、プロファイラーを視覚化するのに非常に役立ちます。
注: を実行するrunsnakeには、wx と numpy をインストールする必要があります。
更新: omikron のコメントから; runsnakerrun は python3 プロファイル出力をサポートできません。(私は試していません)
または、nose-cprof プラグインを試すこともできます: https://github.com/msherry/nose-cprof
hotshot を cProfile に置き換えます
と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