問題タブ [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.
perl - Devel::CoverReport::DB では、.12 および .13 フォーマットは何を意味しますか?
「Devel::Cover」cpan モジュールを使用してカバレッジを生成しています。これは、cover_db を生成し、内部にサブディレクトリを実行します。実行ディレクトリ内で、ファイル cover.14 を取得しています。.12 または .13 形式のファイルを取得する方法と、この .12、.13 または .14 形式の意味は?? 「Devel::CoverReport」モジュールの cover_report を使用してこのファイルの html レポートを生成すると、.12 および .13 形式をサポートするようにモジュールの以下のサブルーチンに従って言及されますが、.14 形式を取得しています
以下は、Devel::CoverReport::DB で使用されるサブルーチンで、.12 または .13 形式を示します。
read_db_file
DBファイルを読み取って解析し、データ構造をそのままファイルに返します。
デフォルトでは、ファイルは保存可能なデータ ダンプであると想定されます。storageable が失敗すると、JSON を使用してデータをロードしようとします。
このメソッドは、.12 および .13 ファイル形式の読み取りをサポートしています。保存可能または JSON でシリアル化されたかどうかを自動検出できます。
可能であれば、このサブルーチンの意味を説明してください。
perl - Perl Devel::Cover to test (cover) my_file.pl のコマンド ライン入力引数が異なる
私は初心者で、私の無知を許してください。Devel::Cover (DC) を使用して、コマンドライン入力引数として arg1、arg2 を使用して実行した my_file.pl Perf ファイルのコード カバレッジを把握しようとしています。DC 1.23 で Perl 5.8.9 を使用しています。html ファイルを生成するために正常に実行した手順は次のとおりです。
perl -MDevel::Cover my_file.pl -arg1 arg1_value -arg2 arg2_value
Devel-Cover-1.23/bin/cover cover_db --report=html
現在、直接テストするパッケージ/モジュールはありません。しかし、いくつかのパッケージを呼び出す my_file.pl ファイルがあります。
そして、コマンド ライン i/p 引数 (arg1_different_value、arg2_different_value など) のいくつかの異なる組み合わせで my_file.pl をテストする必要があります。これらすべてのテストの組み合わせは、私の回帰スイートの一部です (test.txt ファイルに順番に書かれたオプションと考えることができます)。Devel::Cover がこれらのテストで 100% のコード カバレッジを保証できるかどうかを確認しようとしています。 .
上記を for ループで実行することはできますが、毎回異なる引数を使用しますが、意味のある目的のためにマージする必要がある何百もの html/レポート ファイルになるため、それが最善の方法であるかどうかはわかりません。
親切にいくつかの指針を提供していただけますか?
perl - Catalyst + mod_perl + selenium: Devel::Cover の方法は?
多くのテストを含む Web アプリケーションがあります。現在、単体テストのカバレッジ レポートに Devel::Cover のみを使用していますが、フロントエンドの Selenium テストのカバレッジ レポートも必要です。
アプリの psgi スタートアップ ファイルで 'use Devel::Cover' を試しました。これにより、cover_db ディレクトリが作成されますが、Selenium テストの実行中は空のままです。
ポインタをいただければ幸いです。
code-coverage - 「cover -test」を実行しているときに子プロセスからカバレッジを収集するにはどうすればよいですか? (開発::カバー)
(これに対する答えを見たと思いますが、もう一度見つけることはできません。私が遭遇した最も近いのはこの質問です)。
私はprtをハッキングしており、変更の完全なカバレッジデータを取得しようとしています. 私の新しいテストのいくつかは、system($^X, 'prt', ...)
子プロセスを実行するために呼び出します。次に、それらのプロセスの出力をテストします。ただし、Devel::Cover は子プロセスのカバレッジ データを収集しません。通常の実行時に Devel::Cover を実行させずに、そのデータを収集するにはどうすればよいmake test
ですか? 現在、私は醜い回避策 (以下を参照) を持っていますが、もっと簡単な方法が必要だと思います。
完全な MCVE はこちらです。便宜上、コピーするコマンドライン:
t/01-help.t
以下に説明する回避策のために、 の 11 行目をコメントアウトします。
編集私が使用している理由は、 / /system
を 100% カバーするためです。これらのスイッチは、自動的に呼び出されるGetopt::Longによって処理されます。必要に応じて、独自のコードで出口を使用して処理できます。-h
--help
--version
exit()
-exitval=>NOEXIT
うまくいかないこと
PERL5OPT
HARNESS_PERL_SWITCHES
+cover
HARNESS_PERL_SWITCHES
+EUMMmake test
現在の回避策
現在のところ、私が見つけた唯一の方法は-MDevel::Cover
、 を呼び出すときにコマンド ラインに手動で追加することsystem
です。この回答と対応するテストに触発されて、次の回避策があります。