カスタム実行設定ファイルを使用して、コード カバレッジを検査するプロジェクトを制御しています。Microsoft が提供する既定のテンプレートを使用しましたが、これまでのところ、必要な項目を問題なく除外できました。次のアクションは、サービス参照を追加するときに Visual Studio によって作成される自動生成された Web プロキシ クラスをコード カバレッジから除外することです。
これは、次のようなセクションがあるため、デフォルトの runsettings テンプレートで動作するはずです。
<Attributes>
<Exclude>
<!-- Don’t forget "Attribute" at the end of the name -->
<Attribute>^System.Diagnostics.DebuggerHiddenAttribute$</Attribute>
<Attribute>^System.Diagnostics.DebuggerNonUserCodeAttribute$</Attribute>
<Attribute>^System.Runtime.CompilerServices.CompilerGeneratedAttribute$</Attribute>
<Attribute>^System.CodeDom.Compiler.GeneratedCodeAttribute$</Attribute>
<Attribute>^System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute$</Attribute>
</Exclude>
</Attributes>
サービス参照が追加されたときに作成されたすべてのクラスは、GeneratedCodeAttribute で装飾されているため、すべて除外する必要があります。ただし、コード カバレッジを実行すると無視されないため、コード カバレッジは、カバーされていないコードの大きなブロックを報告します。属性を正しく選択するために正規表現を何度か試しましたが、役に立ちませんでした。
次のいずれかの方法に関する提案をいただければ幸いです: - この属性の除外を機能させる - プロジェクト全体を除外する必要がない、または runsettings ファイルを非汎用にする代替手段 (この基本ファイルを再利用したい)特定の編集なしですべてのプロジェクトに適用されます)
参考までに - 他のコード カバレッジ ツールがあることは理解していますが、ここでの私の目標は Visual Studio を機能させることであるため、この場合、別のツールへの切り替えに関する提案は役に立ちません。