0

Perlで説明されているPerlのテストカバレッジの優れた例、コードカバレッジの例を実装しました

しかし、その必要なModule :: Buildは、Module :: Buildインストルメンテーションを持たない既存のPerlアプリケーションがある場合、ユニットテストまたは機能テストのテストカバレッジを取得する方法はありますか?

私は見た :

Clean up from previous test run (optional)
  cover -delete

  #Test run with coverage instrumentation
  PERL5OPT=-MDevel::Cover prove -r t

  #Collect covered and caller information
  #  Run this _before_ running "cover"
  #  Don't run with Devel::Cover enabled
  covered runs
    - or e.g. -
  covered runs --rex_skip_test_file='/your-prove-file.pl$/' \
          --rex_skip_source_file='{app_cpan_deps/}'

  #Post process to generate covered database
  cover -report Html_basic


  %perl -d:Coverage -Iblib/lib test.pl

しかし、これはアプリケーションの実行中のコードカバレッジを示しているようです。

CloverまたはCobertura互換の出力を取得できるようにしたいので、Jenkinsのemail-extと統合できます

4

1 に答える 1

3

Task::Jenkinsが役立つかもしれません。Jenkins を介して Devel::Cover HTML レポートを公開する方法についての説明と、他の Perl ツールを Jenkins に適応させるための情報が記載されています。

Jira には、 Devel::Cover を Jenkins に統合するための手順がいくつかあります。

Perl プロセス (テスト、アプリケーション、サーバーなど) のコード カバレッジを取得するには、環境PERL5OPT変数を設定します。テストを実行するコマンドが.-MDevel::Coveruse Devel::Coverperl something_testPERL5OPT=-MDevel::Cover perl something_test

を使用している場合はprove、 を使用してくださいHARNESS_PERL_SWITCHES=-MDevel::Cover prove <normal prove arguments>proveこれにより、テストの実行時にロードするように指示されますDevel::Coverが、prove 自体のカバレッジを収集することは回避されます。

于 2013-03-14T02:10:45.063 に答える