Hudsonの使い方⑰ Hudsonで.NETを静的解析
今まではJavaプロジェクトで静的解析をしましたが、
.NETプロジェクトでも静的解析をしてみます。
.NETの規約に従っているかをチェックしてくれる
FxCopを使って静的解析してみます。
FxCopプロジェクトファイルを作成します。
1.スタートメニューからFxCopを起動します。
2.メニューのProject→Add Targetsから対象のDLLを選択します。
(今回はHelloNUnit.dll)
3.Project→Analyzeで実行します。
4.NUnitのDLLがないよ〜と言われるので、nunit.framework.dllを指定します。
5.file→saveでプロジェクトファイルを保存します。(今回はHelloNUnit.FxCop)
FxCopをNAntから実行できるようにdefault.buildを追加します。
管理しやすいように、以前に作ったdefault.buildと分けて作りました。
■codeAnalysis.build
<?xml version="1.0" encoding="utf-8"?> <project name="CodeAnalysis" default="analysis" basedir="."> <!-- ========================================================== --> <!-- 定義値 --> <!-- ========================================================== --> <property name="codeAnalysis.dir" value="codeAnalysis"/> <property name="fxcop.home" value="C:/Program Files/Microsoft FxCop 1.35"/> <property name="fxcop.project" value="HelloNUnit.FxCop"/> <property name="fxcop.out" value="fxcop.xml"/> <!-- ========================================================== --> <!-- Antタスク実行順序 --> <!-- ========================================================== --> <target name="analysis"> <call target="clean" /> <call target="fxcop" /> </target> <!-- ========================================================== --> <!-- ディレクトリをクリア --> <!-- ========================================================== --> <target name="clean"> <delete dir="${codeAnalysis.dir}" /> <mkdir dir="${codeAnalysis.dir}" /> </target> <!-- ========================================================== --> <!-- FxCop実行 --> <!-- ========================================================== --> <target name="fxcop"> <exec program="FxCopCmd.exe" basedir="${fxcop.home}"> <arg value="/p:${fxcop.project}" /> <arg value="/o:${codeAnalysis.dir}/${fxcop.out}" /> </exec> </target> </project>
プロジェクトの設定でNAntの呼び出しを追加します。(赤枠の部分です)
Violations Pluginをインストールします。
ジョブの設定でReport Violationsをチェック
FxCopの出力結果ファイルを指定します。(赤枠の部分です)