問題タブ [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 - mod_perl2 で Devel::Cover を実行するにはどうすればよいですか?
残念ながら、Devel::Coverスレッドではまだ動作しません。
プリフォークでも動作しません。
で、問題use_startup.plDevel::Cover
パール 5.8.9、アパッチ 2.2.13。私の OS は FreeBSD です。についても同じ問題が報告されていwin32ます。
更新:ここに出力がありますPerlTrace all
perl - Devel::Cover および ModPerl::Registry を使用したランタイムのカバレッジはありません
で実行Devel::Coverすると、ブロックModPerl::Registry以外のカバレッジ情報が得られません。BEGINコマンドラインから、またはCGIとして同じスクリプトを実行している場合Devel::Cover、すべてが正常に機能します(明らかに)。
Devel::Coverランタイムで実行されているコードを「見る」にはどうすればよいですか?
これが私のDevel::Cover関連するものですhttpd.conf:
ここにありstartup.plます:
(ご覧のとおりDevel::Cover、startup.plは によって実行されている ため、 に対してモンキー パッチを作成しましたrootが、ワーカー プロセスは別のユーザーで実行されているため、 によって作成されたディレクトリを読み取ることができませんでしたstartup.pl。より良い解決策を知っている場合は、メモしてください。 .)
perl - PerlのDevel::Cover出力の列はどういう意味ですか?
「Perlビルド、単体テスト、コードカバレッジ:Kurt W. Leuchtによる完全な実例」では、カバレッジレポートを実行build testcoverして賭けていることがわかります。結果は「ファイルカバー」の図に示されています。stmt、bran、sub、timeの下に表示されている数字は何を示しているのか誰かわかりますか?
perl - Devel::Cover - サブルーチンのカバレッジのみ
perl ファイルでサブルーチン カバレッジのみが必要です。したがって、メインファイルに次のステートメントを挿入しました。
mainfile.pl
mainfile.pl を実行すると、次のエラーが表示されます。
このエラーを解決するにはどうすればよいですか? しかし、私が使用すると、use Devel::Cover;それは正常に機能します。
perl - Devel::Cover が特定のパスにあるすべてのファイルをカバーする場合
私は、記述が不十分であるが、驚くほど多くのテストを含むいくつかのレガシー コードをクリーンアップする任務を負っています。これらのテストの一部は、次のようなファイルでコードを実行します。
それらを取材レポートに含めたいと思います。実際、 (拡張子に関係なく)すべてlib/を、fcgi/、およびutils/に含め、その他のディレクトリには何も含めないようにしたいと考えています。
これは私の多くの試みの1つです:
不合格!
また、単純な Build.PL または Makefile.PL スクリプトを作成しようとしましたが、「cover -test」や「./Build testcover」などを実行すると「テストが定義されていません」というメッセージが表示され続けます。
これは Devel::Cover 0.88 と perl バージョン 5.12.2 です
perl - Devel::Cover のレポートで、カバーされていない pm/pl ファイルを一覧表示する方法
私のディレクトリ/ファイルは次のようなものです:
start.pl はインタラクティブなプログラムで、選択内容に基づいて異なる pm を呼び出します。
start.pl を実行すると
出力 html レポートには、呼び出されたすべての pms start.pl がリストされます。すべての pms をリストしたい。すべて、呼び出された pms start.pl と呼び出されていないものを含めます。これは、現在のテスト中に使用されていない pm を取得するのに役立ちます。
これはDevel::Coverでできますか??
perl - Devel::Cover でカバーできない `//` 条件をマークする方法は?
私は次のロジックを持っています:
ステートメントは、とが両方とも未定義であるという条件のreturn対象にはなりません。そのため、カバレッジ レポートでは、その状態がカバーされていないと指摘しています。$x$y
その状態を としてマークする方法はありuncoverableますか? 行の上に追加uncoverable condition falseすると、カバレッジの概要が修正されますが、詳細を見ると、条件のカバレッジはまだ 67% です。
Devel::Cover は//オペレーターを処理しますか?
別のメモとして、die行を同等のものに変更すると:
そのラインも 67% カバーされます。
それはバグでしょうか?
perl - Devel::カバー HTML 出力
Devel::Cover をいじって、テスト スイートが実際にコードベースをどれだけうまくテストしているかを確認しています。-MDevel::Cover何も失敗したりクラッシュしたりしないように見えるものを使用してすべてのテストを実行しますが、カバレッジ テーブルの HTML 出力には、すべてのモジュールに対して次のようなエントリがあります。

リストされている の数は、ソース ファイル内BEGINのステートメントの数と一致しているように見えuse Module::Xますが、実際には HTML 出力が乱雑になっています。この機能を無効にする方法はありますか? チュートリアルや Github イシュー トラッカーでそれについて言及されていません。
perl - Devel::Cover が mod_perl2 での起動後にデータを収集しない
CentOS 6.5 の mod_perl2 で実行される Web アプリの Selenium のカバレッジを確認したいと考えています。
そこで、Devel::Cover をインストールuse Devel::Cover;し、httpd.conf の<Perl>セクションに入れ、Apache を再起動しました。カスタムの ErrorLogging.pm モジュールからカバレッジ データがすぐに書き込まれますが、ブラウザ経由でアプリのページにアクセスしても、それ以上何も起こりません。
私もこれを変更しようとしましたhttpd.conf:
...同じプロセスからすべてのデータを収集していることを確認するためです。ただし、Apache を再起動して再試行した後、結果は同じでした。
更新:このスレッドに記載されているようにhttpd起動も試みましたが、結果は多かれ少なかれ同じでした。ただし、テストが完了したときにサービスを Ctrl+C する必要がありました。これは、サービスが端末を引き継ぐためであり、その時点でセグメンテーション違反が発生したためです。 . しかし、最終的なカバレッジ データベースは実質的に同一でした。-D ONE_PROCESS
ドキュメントには、私が見ることができる違いは何も言及されていません。mod_perl2 を介した実際のブラウザー要求に応答して発生するコード実行のカバレッジ データを記録するように Devel::Cover を取得するにはどうすればよいですか?