2011-09-08 12 views
2

PHPUnitを使用してテストを実行すると、私のSmartyテンプレートのコードカバレッジメトリックが大好きです。PHPUnit:スマートテンプレートのコードカバレッジ

残念ながら、Smartyはテンプレートを.phpファイルにコンパイルするので、テンプレート自体にカバレッジ情報が含まれないため、これはそのままでは機能しません。コンパイルされたファイルが読めないほど近くにあるので、コンパイルされた.phpを見ると、カバレッジは良くありません。

カバレッジ情報で注釈付けされた元のテンプレートコードを取得するにはどうすればよいですか?

PHPUnit's PHP_CodeCoverageと統合されたツールが必要です。生成されたHTMLファイルにカバレッジが表示されるためです。しかし、他の解決策でも十分です:)

答えて

3

本質的に、カバレッジツールを持たない「新しい」プログラミング言語(テンプレート)を使用しています。カバレッジデータがテンプレートに必要であることがわかりました。コンパイルされたPHPファイルにアクセスして/ testを実行してカバレッジデータを取得できるようにする必要があります。

私はアドホックソリューションについて知らないが、任意の言語のための一般的な解決策はここに概説されています

Branch Coverage for Arbitrary Languages Made Easy

私の会社はこの考えに基づいてfamily of test coverage toolsを作成しています。これらのツールは相互運用できます。 JavaおよびCテスト・カバレッジ・ツールを使用して、Javaの混合システム(JNI対応コールオン)のCコードからテストカバレッジ・データを収集すると、JavaコードとCコードの両方のカバレッジを一緒に表示することができますカバレッジデータの統計情報を提供します。

このファミリには既にPHPテストカバレッジツールがあります。 Smartyカバレッジツールがあれば、その出力をPHPカバレッジと直接組み合わせて、PHPテンプレートとSmartyテンプレートの両方をカバーすることができます。

+0

私はこの回答を受け入れますが、(既存の解決策を用いて)より良い回答は得られていません。 – cweiske

関連する問題