2017-01-31 19 views
1

私は行と枝の不足を報告するテストを受けようとしています。私は、回線とブランチのカバレッジを生成するためにnose2とカバレッジを設定しました。そして、カバレッジ設定を正しく設定して、私に不足している回線とブランチを渡すことができます。しかし、nose2の下で実行したときにカレンダーが失われるようにカバレッジを得ることはできませんが、直接実行するとできます。nose2で不足している行とブランチを取得できません


プロジェクトディレクトリで次の設定を検討してください。 .coveragercの

my_module/ 
    __init__.py 
    main.py 
tests/ 
    test_a_thing.py 
unittest.cfg 
.coveragerc 

内容unittest.cfg

[coverage] 
always-on = True 
coverage = my_module 
coverage-config = .coveragerc 

[run] 
branch = True 

[report] 
show_missing = True 

内容私nose2コマンドの出力

(example_venv) [email protected][11:30:53]:/space/test_example$ python -m nose2 -c unittest.cfg --no-user-config 
. 
---------------------------------------------------------------------- 
Ran 1 test in 0.000s 

OK 
----------- coverage: platform linux, python 3.5.2-final-0 ----------- 
Name     Stmts Miss Branch BrPart Cover 
--------------------------------------------------------- 
my_module/__init__.py  0  0  0  0 100% 
my_module/main.py   4  1  2  1 67% 
--------------------------------------------------------- 
TOTAL      4  1  2  1 67% 

あなたが見ることができるように、それは持っています私に与えられたBranch covええ、逃した枝には言わなかった。

私は単にあなたがその報道は私に欠けている枝を与えている見ることができます

(example_venv) [email protected][11:34:15]:/space/test_example$ coverage report 
Name     Stmts Miss Branch BrPart Cover Missing 
------------------------------------------------------------------- 
my_module/__init__.py  0  0  0  0 100% 
my_module/main.py   4  1  2  1 67% 3, 2->3 
------------------------------------------------------------------- 
TOTAL      4  1  2  1 67% 

(鼻を実行した後に残されている生産.coverageファイル上)coverage reportを実行する場合。


noseの下で実行したときに、私はその後、分岐カバレッジの統計は、レポートから消え、.coveragerc[run]セクションの下branch = True行を削除した場合ので、私は、nose2の下で実行したときにcoverage.coveragercを拾っていることを伝えることができます。私は余分な何かが欠け


アムは、私はそれがnose2下で実行されたときにcoverageに渡さ取得するには、このshow_missing設定を取得するために行っていることになっていますか?

バージョンは

cov-core==1.15.0 
coverage==4.3.4 
nose2==0.6.5 

答えて

1

TLをインストールし、DRは - nose2ためunittest.cfg[coverage]セクション(または他の--config [CONFIG], -c [CONFIG]ファイル)にcoverage-report = term-missingを追加する必要があります。 show_missing = True


coverageに長い説明を渡すCov-Coreためには:コマンドライン引数で上書きされない限り

コマンドライン上coverage reportを実行し、show_missingNoneとしてcoverage.coverage() *に渡されます。

しかしnose2TrueまたはFalseのいずれかとしcov_core.CovController.summary()show_missingcoverage.coverage()に*を渡すであろう、cov-coreを使用しています。次のロジックに基づいて:

if 'term' in self.cov_report or 'term-missing' in self.cov_report: 
    show_missing = 'term-missing' in self.cov_report 
    self.cov.report(show_missing=show_missing, ignore_errors=True, file=stream) 

cov_reportcoverage-report設定がnose2に設定されていることです。

だからこれは私がライン/枝を逃し得るためにcoverageさんのconfigsを使用しようとしていたので、私の混乱のいずれかで、別のレポートなどCov-Core扱い、それらを((用語にレポートを実行するとき、show_missingのための余分なフラグがあります)プレーンカバレッジを取得するにはterm、ノーマルカバレッジ+欠落ラインを取得するにはterm-missingを報告してください)。

Cov-Coreは、ほとんどの他のビット(1つのブランチカバレッジを含める/除外する)がまだcoverageの設定によって駆動されているときに、オーバーライドすることを決定しました。


* coverage.coverage()は、

)後方互換性微調整、及び実際coverage.control.Coverageのインポート(カバレッジ/ __ init__.pyで)(です
関連する問題