2013-10-24 11 views
8

Flaskアプリケーションのどの行が実行されているのか把握しようとしています。私はこのようなフラスコを起動します。なぜcoverage.pyはFlaskのrunserverコマンドを適切に測定しませんか?

coverage run manage.py runserver 

出力は次のようになります。

* Running on http://127.0.0.1:5000/ 
* Restarting with reloader 

manage.pyは次のようになります。

#!/usr/bin/env python 
from flask.ext.script import Manager 

from my_flask_app import app 

manager = Manager(app) 

if __name__ == '__main__': 
    manager.run() 

私は、HTTPを介してアプリケーションのさまざまな部分にアクセスします。

私はカバレッジHTMLレポートを見ると、メソッドの実際の本文ではなくメソッド定義のみが対象となっていると言います。

私は、メソッドがcoverage.pyでカバーされていないサブプロセスによって実行されていると思われます。

アイデア?

答えて

7

この問題は上記の「reloader」メッセージに関連していることが判明しました。

* Running on http://127.0.0.1:5000/ 

、それは別のプロセスでサーバーを起動しません。この方法で、カバレッジ:

coverage run manage.py runserver -R 

出力はこれだけ含まれています。私は、代わりにこのようにフラスコを起動したときにカバレッジ・レポートが正確ですよく働く。

私は、このソリューションにこの関連Djangoの質問への感謝を見つけた:

Why doesn't coverage.py properly measure Django's runserver command?