問題タブ [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 - デフォルトの Module::Build / Test::More ディレクトリを "lib" から別のディレクトリに変更するにはどうすればよいですか?
Perl ユニット テストとコード カバレッジに関するこの投稿のディレクトリとファイル アーキテクチャを使用して(非常に役に立ちました)、ユニット テストとコード カバレッジを実行するファイルを新しい "lib" ディレクトリにコピーすると、次のように動作します。魅力!
ただし、モジュールが既存の「scripts」ディレクトリを検索する必要があります..
CPANの Module::Build ドキュメントをくまなく調べましたが、まだCan't find file lib/processBuildSubs.pmエラーが発生します
これが私がこれまでに持っているものです...
アップデート!
これも試してみました..
私が推測するいくつかの進歩は、 lib/scripts/..を見ているようですが、まだ必要なものではありません..
アップデート!
一種のハック作業ですが、今のところ、それは私にとってはうまくいきます..
このスクリプトを実行してディレクトリ名を変更し、tests/coverage を実行して、ディレクトリ名を元に戻します...誰かもっと良いアイデアがありますか?
perl - Perl で Devel::Cover の CSS を変更するにはどうすればよいですか?
コード カバレッジをテストするために実行する場合./Build testcover
、独自のスタイルシートを使用するための何らかのオプションをオーバーライドとして渡す方法はありますか?
Devel::Cover CPAN のドキュメントを調べましたが、役に立ちませんでした。
perl - Devel::Cover Perl スクリプトとモジュールのカバレッジ データをマージする
Perl スクリプトとモジュールのカバレッジ用にデータをマージする際に問題があります.Devel::Cover を個別に実行すると問題なく動作しますが、データを結合しようとすると、モジュールではなく Perl スクリプトだけの統計が失われます..
説明させてください..
次のようなディレクトリツリーがあります..
ルート Code_Coverage_Test ディレクトリ内には、モジュールのテストをビルドする Build.pl ファイルと、いくつかのコマンドを自動化する他の 2 つのスクリプトを開始するスクリプトがあります。
./Build.pl
./startTests.sh
lib ディレクトリ内に、コード カバレッジを実行しようとしているファイルがあります。
lib/testPLCoverage.pl
lib/testPMCoverage.pm
t ディレクトリには、モジュール用の .t テスト ファイルと、テストを開始する 2 つのスクリプトがあります。どちらもルート ディレクトリの startTests.sh によって呼び出されます。
t/testPMCoverage.t
t/doPLtest.sh
t/doPMtest.sh
私が直面している問題は、doPLtests.sh スクリプトを実行すると、カバレッジ データが取得されることです。問題ありません..
ただし、doPMtest.sh スクリプトが終了し、startTests.sh スクリプトが Build testcover コマンドを開始すると、途中でそのデータが失われ、これらのメッセージが表示されます ...
..そしてどういうわけか私はデータを失います
Perl モジュールと Perl スクリプトのテストを組み合わせて、1 つのファイルで有効なコード カバレッジを得るにはどうすればよいですか?
perl - Devel::Cover を使用してコード カバレッジ結果を生成できない
c4rgr.pl
を使用してテスト ファイルのコード カバレッジを見つけようとしましたDevel::Cover
。.pm
同じエリアにモジュールがあります。を使用しており、内部にサブディレクトリがperl -MDevel::Cover c4rgr.pl
生成されます。cover_db
runs
サブディレクトリ内には、コマンドruns
を実行するたびにバージョン管理されたディレクトリが作成され、 aが取得されます。このファイル (と思います) には、コード カバレッジ結果の生データが含まれています。Cover
cover.13
cover.13
それでも、HTML 出力形式またはターミナル画面でテスト結果を取得できません。
これが私がすることです:
実行します
perl -MDevel::Cover c4rgr.pl
ここでは
c4rgr.pl
、同じ領域にある .pm モジュールを使用しています。上記のコマンドを実行すると、テスト ファイルが実行されますが、
Devel::Cover
HTML 出力に示されているようなテスト カバレッジ出力が得られません。それにもかかわらず、cover.13
ファイルは毎回作成されます。Cover.13
<-1401378982.24872.12631
<- 実行 <-cover_db
.HTMLファイルの入手方法を教えてください。同じ機能でダミー テストを実行し、HTML ファイルを生成することができました。しかし、私の実際のテストでは、そうではありません。
cover.13
または、私の場合は行われていない HTML にファイルを変換する方法はありますか?
perl - Devel::wrapper とテストスクリプト付きの .pm モジュールで使い方をカバーする
Main.pm
perl(Mainwrapper) で書かれたラッパーを持つ.pm モジュール ( ) があります。この 2 人は開発チームの一員です。wrapper( ) をテストするテスト スクリプトを perl で作成しましたTestwrapper.pl
。Devel::Cover
ここで、ラッパー (他の人が作成) とそのテスト スクリプト (私が作成)を使用してカバレッジを取得する必要があります。Mainwrapper はもちろん .pm モジュールを使用します。
perl -MDEVEL:COVER Testwrapper.pl
すべての MainwrapperMain.pm
をTestwrapper.pl
同じディレクトリに置いてから使用してみました。コードにも含まMain.pm
れていTestwrapper.pl
ます。Testwrapper.pl
レポートでは とMain.pm
モジュールのみを取り上げることができました。私が実行した回避策の 1 つは、Mainwrapper の名前を として変更Mainwrapper.pm
し、ファイルに含めることでしたTestwrapper.pl
。これにより、すべてをカバーできます。ただし、これは長期的な解決策ではありません。誰かがこれをどうやって行くか教えてもらえますか?
perl - Devel::Cover のオン/オフ切り替えの提供
CodeA をテストするテスト コードで Devel::Cover を使用している場合、Devel::Cover にはカバレッジをオフにするオプションがありますか。ユーザーごとにカバレッジ モジュールのオンとオフを切り替える方法はありますか?
テスト コードは CodeA をテストします。Devel::Cover コマンドは、CodeA コマンドがテストされるたびにテスト コードに埋め込まれます。
Devel::Cover には、このカバレッジ コレクションをオンまたはオフにできる規定が含まれていますか?
perl - Devel::Cover の一部としてカバー スクリプトに @INC を提供する方法
モジュール@INC
の一部であるカバー スクリプトを外部から提供するにはどうすればよいですか。Devel::Cover
トリガーされた場所に関連するライブラリを検索して、カバースクリプトを実行したい。
アイデアは、ソースの一部としてカバーを持つことであり、これを取得した人は誰でも、それがどこにあるかに関連するライブラリを気にせずに直接実行できるはずです。
スクリプトを変更して、BEGIN
パスを にプッシュするブロックをこの中に入れようとしましたINC
。正常に動作しますが、スクリプトを変更するのはあまり良くありません。INC
呼び出されたときに相対パスが必要です。
perl - Devel::Cover でディレクトリを除外する
CentOS で apache Web サーバーを使用して Perl ベースのアプリケーションをカバーしたかったので、それを行うためにDevel::Cover
に行きました。いくつかの最初の闘争の後、私はそれをインストールしました。PERL5OPT
env 変数はカバレッジの取得に役立たなかったのでuse Devel::Cover
、コード内に含めようとしました (それが悪い考えであることはわかっていますが、目的には役立ちます)。Web サーバーを再起動した後、 はそのcover_db
実行/構造を生成していますが、データは CPAN 汎用モジュールでもトランザクションが行われているようで、これにより合計カバレッジ スコアが低下します。
例: から単一のメソッドを使用するNet::FTP
と、そのモジュールの合計行数を考慮して合計スコアが減ります。CPAN のすべてのモジュールについても同様です。
私が必要としているのは、カバレッジのために特定のディレクトリからファイルを選択し、残りをすべて無視する機能です。説明から、+inc
および-inc
オプションはこのために設計されているようですが、それらを使用しようとすると、次のエラーが発生します。
Unknown option: inc
いくつか知りたいことがあります。
- トランザクションで更新された後 、レポートの生成中
cover_db
に使用して除外することは可能ですか?cover -options
- 特定のパスのみをカバーする他の方法はありますか?
応答に感謝します。
perl - Devel::Cover 条件付き三項演算子の分岐カバレッジ
cover
モジュールから実行しDevel::Cover
ていて、条件付き三項演算子を使用する行で分岐カバレッジの 50% を取得しています。
return @rgb ? map { hex $_ } @rgb : undef;
これでよろしいですか?if/else
100% のカバレッジを得るには、ブロックを使用するようにコードを変更する必要がありますか?
私はDevel::Cover
これに慣れていないので、これについてあなたが提供できる洞察は本当に役に立ちます。
ありがとう
perl - Devel::Cover HTML レポート プロセスが強制終了されました
200 以上のセレン テスト ケースを含むテスト スイートがあり、それぞれで Devel::Cover を使用してカバレッジをキャプチャします。すべてのテスト ケースを実行した後、'cover cover_db -report html' を使用して HTML レポートを生成しようとすると、メモリ不足のエラーで 16 GB 近くのすべてのメモリを消費した後、プロセスが強制終了されます。これを解決する方法はありますか?どんな助けでも素晴らしいでしょう