--with-coverage Enable plugin Coverage: If you have Ned Batchelder's
coverage module installed, you may activate a coverage
report. The coverage report will cover any python
source module imported after the start of the test
run, excluding modules that match testMatch. If you
want to include those modules too, use the --cover-
tests switch, or set the NOSE_COVER_TESTS environment
variable to a true value. To restrict the coverage
report to modules from a particular package or
packages, use the --cover-packages switch or the
NOSE_COVER_PACKAGES environment variable.
[NOSE_WITH_COVERAGE]
の実装をさらっと読んだ。
- ソースをパースして実行されるstmtの辞書を作る。
- sys.settraceを使って実行時にファイル・行情報を取り出して実行されたマークをつける。
ソースは1000行だし、compiler moduleを使ったことがあるのでやっていることはすぐわかった。sys.traceだが、ここを読むとすぐわかる。
3.1 sys -- システムパラメータと関数
settrace(tracefunc)
システムのトレース関数を登録します。トレース関数 はPythonのソースデバッガを実装するために使用することができます。 9.2の``How It Works,''を参照してください。 トレース関数はスレッド毎に設定することができますの で、デバッグを行う全てのスレッドでsettrace()を呼び出し、ト レース関数を登録してください。 注意: settrace() 関数は,デバッガ,プロファイラ, カバレッジツール等で使うためだけのものです. この関数の挙動は言語定義よりも実装プラットフォームの分野の問題で, 全ての Python 実装で利用できるとは限りません.
testをpass/failの赤いバーが緑になるunittestではなくて、uncovered, fail, passで2回変化すると面白いかも。
0 件のコメント:
コメントを投稿