3

最初の質問: PHPUnit 3.5では、テストスイート全体のレポートを上書きせずに、単一のテストのカバレッジレポートを生成する方法はありますか。つまり、影響を受けるファイルのカバレッジレポートのみを更新しますか?それでも出力を同じフォルダーに移動したい。

少し背景が必要な人のために:

PHPUnit 3.5を使用して、ユニットテストで遡及的にカバーする必要があるプロジェクトがあります。ここで、まだテストが必要なクラスを知るために、テストスイート全体を実行し、それに関するhtmlカバレッジレポートを生成します。完全なスイートの実行には時間がかかるため、どのテストをまだ実装する必要があるかを確認するたびに実行する必要はありません。しかし同時に、現在取り組んでいる単体テストのカバレッジレポートも必要です。これにより、クラス内のコードの各行を確実に実行できるようになります(もちろん、これは非常に高速です)。 、したがって、このレポートを生成するためだけにスイート全体を実行することは意味がありません)。1つのテストのレポートを生成でき、スイート全体のレポートを生成できます。しかし、私が探しているのはハイブリッドです、

作業中の現在のファイルのテストを実行し、そのファイルのカバレッジレポートを生成するrubyスクリプトを設定しました。しかし、そのように機能すると、テストがそれらのクラスで何も実行しなかった場合でも、他のすべてのファイルのカバレッジレポートも常にリセットされます。

何か案は?

4

1 に答える 1

0

これはネイティブでは不可能ですが、XMLカバレッジデータファイルからHTMLを再生成する方法を理解できれば、スクリプトを次のように変更できます。

  1. フルランのカバレッジXMLをステージング領域にコピーします。
  2. 単一のテストを実行する場合は、新しいXMLファイルをその領域にコピーします。これは必ずしも同じクラスをカバーする2つのテストからのカバレッジをマージするわけではありませんが、あなたの説明から、各テストから1つのクラスをカバーしていると推測しています。
  3. XMLからHTMLを再構築します。ソースを見ればこれを行う方法を理解できるかもしれませんが、ネイティブでも可能かどうかは疑問です。
于 2012-09-28T14:32:40.587 に答える