Ivan が言及しているように、あなたの根本的な原因は分析ツールの不足ではなく、おそらく開発チームとプロジェクトのスポンサーの間で合意された (または現在チーム メンバー間で強制されている) 品質と厳密さのレベルにあります。チームへのプレッシャーが高すぎて重要なレビュー アクションがスキップされたり、チーム (またはスポンサー!) があなたやスポンサーと同じ品質に対する欲求を持っていない可能性があります。または、チームがこれらの問題の発生を防ぐための適切なレベルの知識を持っていない.
これを回避する最善の方法は、短期間でできる限り修正することです。
警告: 私は多くのチームで、一度にあまりにも多くのルールをオンにすることの影響を経験しました。一般に、人々は自分の仕事が標準に達していないことを認めたがらず、バグを直接引き起こさないルール (たとえば、「識別子の大文字と小文字が正しくない」など) を有効にすると、フラストレーションを引き起こし、勢いを著しく妨げる可能性があります。 . 私の経験では、今すぐ解決する必要があるルールと後で解決できるルールを慎重に選択することで、はるかにうまく機能しました。チームがこの種の問題を解決する方法を開発したら、さらに簡単に適用できます。
ソリューションのコード分析を構成したり、Resharper のソリューション全体の分析機能を使用したりするなどのツールを有効にすると、問題を特定するのに役立ちますが、チームが問題の作成を停止しない限り、問題を解決したり、同様の問題が将来発生するのを防いだりすることはできません。
ヒント: ビルド中に Resharper をオンにすることも、Resharper CLI 機能を使用してオンにすることもできます。
StyleCop コード自体がバグや問題を抱えている可能性がある大量の警告をトリガーするほど悪い場合、私はこのチームに (まだ) 強制しません。これらの問題を最初に修正し、後でコードを作成します。あなたの優先事項は、潜在的なバグを取り除くことです。
CodeAnalysis と FxCop は同じものなので、両方をオンにする必要はありません。Resharper のようなツールは、開発者がマジック キーALT+を使用して多くの問題を迅速に解決するのに役立ちますENTER。
クリーンなベースラインを作成する場合は、コード分析を 1 回実行してから、生成されたすべての警告を選択してから を選択しますSuppress in global suppression file。これはコード分析の問題には有効ですが、コンパイラの警告は抑制されません。現在のすべてのコンパイラの警告をすばやく抑制する簡単な方法はありません。
ヒントglobalsupressions.cs
:この「ベースライン」が別に保存されるように、既存のファイルの名前を一時的に変更すると役立つ場合があります。これにより、後で修正する必要がある警告を知ることができます。
ヒント: 開発者が警告を抑制する場合、Justification="Reason for suppression"
生成される抑制に を追加してもらいます。これにより、慎重に検討された抑制と一時的な抑制を区別できます。
ビルド サーバーを既に持っているかどうかに応じて、次のステップはTeam Build をインストールすることです。ビルド サーバーを入手したら、 Build Definition をセットアップする必要があります。このブログ投稿では、ほとんどの手順について説明しています。
ビルド定義でトリガーを「Gated Checkin」に設定し、「プロセス」タブでコード分析を「常に」に設定してください。コード分析エラーに基づいてビルドを失敗させたい場合は、カスタム ルールセットを作成し、それをソリューション用に構成する必要があります。
コンパイラ エラーでビルドが失敗するようにするには、「警告をエラーとして扱う」を有効にすることもできます。
ゲート チェックイン ビルドを有効にすると、すべての開発者の変更に対して、ビルドが完了するまで待機するように求められます。(Web アクセスを使用して) アラートをオンにするか、Build Notification Tool を使用して、変更が正常に送信されたときに通知を受け取ることができます。
ヒント: 一度にすべてのルールをオンにする (またはビルド中にすべてのルールを切り替えてエラーを発生させる) 代わりに、一度にいくつかのルールをオンにして修正することもできます。カテゴリごとにルールをオンにすることで、ルールをオンにすることの重要性と、ルールを修正するための可能な解決策を人々に教える良い機会が得られます。
はるかに高度なソリューションは、チーム ビルド環境と一緒に SonarQube をインストールして構成することです。ALM Rangers と Sonar は最近協力して、インストール ガイダンスと、Team Build と SonarQube の統合を可能にする多数の拡張機能を作成しました。インストールガイドはこちらからご覧いただけます。