私は OpenCover を使用していないため、これは憶測ですが、カバレッジ分析ツールは、通過するすべての行を計測することになっています。画像操作を行っているため、各ピクセルは確かにOpenCoverをトリガーして、一致するコード行で何らかの分析を行い、多くのピクセルがあります
OpenCover が 1 行のコードをインストルメント化するのに 0.01 ミリ秒かかるとします (これも純粋な憶測です)。1280*1024 の画像を操作しており、各ピクセルには 3 行のコードが必要です (赤のチャネル、x または緑と青など)。 、1310720 * 0.01 * 3 = 約 39 秒になります。1回のテスト用。
テストが 1 つしかないと思うので、これにテストの数を掛けます。遅い理由がわかるかもしれません。
おそらく、より小さな規模でアルゴリズムをテストしてみてください。画像全体の操作を行っていない限り (どの操作かわかりませんか?)、コードを実行するために画像全体を操作する必要はありません。または、小さい画像を使用しますか?
編集: ここでテスト スイートを見てみましたが、(もう一度、OpenCover 自体を知りません) 問題は、テストしているすべてのデータに起因していると言えます。すべての単一の画像が同じテスト用に読み込まれ、処理されます。これは、何かを単体テストする方法ではありません。
lib の Image クラスへの各イメージ タイプのロードをテストしてから、Image クラスからの1回のローテーション、1 回のサイズ変更操作などをテストします。毎回すべてをテストしないでください。
テストは必要なので、OpenCover オプションを調べて一部のデータを除外することもできます。おそらく、アルゴリズムの外側のシェルのみをインストルメント化してカバレッジ分析を改良すると役立つでしょう。フィルターを見て、許容できるように実行するために何を非表示にできるかを確認してください。
または、コード カバレッジを毎日、優先的に夜間に実行することもできますか?