問題タブ [devel-cover]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
78 参照

perl - Perl の Devel::Cover が一部のブランチと条件がカバーされていないと考えるのはなぜですか?

配列を取り、各アイテムの発生頻度をカウントし、一意のアイテムの配列を返します。最初にカウント順に並べ替え、次にアルファベット順に並べ替え、次にアルファベット順に大文字と小文字を区別しないようにして、実行間で順序が変わらないようにします。

このテストケースがあり、すべて正常に動作します。

私はそれを実行し、Devel::Coverテスト カバレッジ数を収集するために使用します。100% のカバレッジを期待していましたが、ブランチと条件のカバレッジは短いです。

HTML レポートを確認すると、一部の分岐と条件がカバーされていないことがわかります。

支店カバレッジ

コンディションカバレッジ

Devel::Cover一部のブランチと条件がカバーされていないと考える理由がわかりません。

TF のブランチがカバーされていないと不平を言っていますが、<=>決して真実ではない部分はどれですか? 私は 'a' と 'c' の両方を 2 回持っているので<=>、'a' カウント (2) を 'b' カウント (1) と比較すると、その (F) にはゼロが返され、ゼロ以外 (T) が返されます。

条件カバレッジについては、チェックの両方の部分が偽であるケースはカバーされていないと報告書は述べています。繰り返しますが、同じカウントと同じ名前の両方を持っているので、それをカバーする必要があると思います。

100% の分岐と条件のカバレッジを得るには、どのテスト ケースを追加する必要がありますか?

または、sortこのような関数が にとって扱いにくい場合Devel::Cover、これらを無視するようにどのように指示できますか? コードを次のように変更しました

しかし、それは同じ結果を得ました。

0 投票する
2 に答える
42 参照

perl - モジュールではない main.pl にテストを作成し、Perl Devel カバーを使用して実行する必要があるか、またはその方法はありますか

モジュールのカバレッジを書くことについて話している資料はたくさんありますが、コマンド実行可能な perl スクリプト (main.pl) のテストを書きたい場合はどうすればよいですか?

main.pl のテストを作成する必要がありますか、それともモジュールのテストを作成するだけでよいですか?

これら 2 つのスクリプトがあるとします。

コマンド実行可能スクリプト

main.pl

==============================================

Perl モジュール

Halo.pm

==============================================

コマンドラインで実行:
perl main.pl