NDepend in CCNET
NDependとCCNETの連携をメモしておきます。
1.NDependの定義ファイル(XML)を作成する
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <NDepend AppName="NDepend V2.2.0"> <OutputDir KeepHistoric="True" KeepXmlFiles="True">D:\build\bin</OutputDir> <Dirs> <Dir>D:\build\bin</Dir> <Dir>C:\Program Files\NSpecify.Framework</Dir> </Dirs> <Assemblies> <Name Warn="True">NSpecify.Examples</Name> </Assemblies> <FrameworkAssemblies> <Name>NSpecify.Framework</Name> </FrameworkAssemblies> <Report> <Section Enabled="True">Application Metrics</Section> <Section Enabled="True">Assemblies Metrics</Section> <Section Enabled="True">VisualNDepend View</Section> <Section Enabled="True">Assemblies Abstracness vs. Instability</Section> <Section Enabled="True">Assemblies Dependencies</Section> <Section Enabled="True">Assemblies Dependencies Diagram</Section> <Section Enabled="True">Assemblies build order</Section> <Section Enabled="True">NDepend information and warnings</Section> <Section Enabled="True">CQL Queries and Constraints</Section> <Section Enabled="True">Types Metrics</Section> <Section Enabled="True">Types Dependencies</Section> </Report> <WarnFilter WarnNotUsedType="True" WarnNotUsedMember="True" WarnTypeVisibility="True" WarnPropertiesVisibility="True" WarnMethodsVisibility="True" WarnConstructorsVisibility="True" WarnFieldsVisibility="True" WarnEventsVisibility="True" WarnAssemblyVersioningIssues="True" WarnPDBIssues="True" /> <FormSettings MainWindowState="2" LocationX="-4" LocationY="-4" SizeWidth="1288" SizeHeight="998" SplitterDistance1="264" SplitterDistance2="420" SplitterDistance3="305" /> </NDepend>
2.NAntのビルドファイルにNDependの実行を追加
<target name="ndepend"> <!-- NDependを実行する定義ファイルを出力先にコピーする --> <copy todir="${build.dir}/bin"> <fileset basedir="."> <include name="NDependInput.xml" /> </fileset> </copy> <NDepend NDependConsoleExePath="${ndepend.dir}" ProjectFilePath="${build.dir}/bin/NDependInput.xml" /> </target>
3.NAntのあるディレクトリに「NDepend.Build.NAntTasks.dll」を格納
4.CCNETのwebdashboardにNDepend用のxslを追加
このBlogのエントリーから入手できます。
- ndependreport-ccnet.xsl (modified from CCNet Contrib version to include image support)
- ndependsummary-ccnet.xsl (same as CCNet Contrib)
- ndependreport-ccnet-ApplicationMetrics.xsl
- ndependreport-ccnet-AssembliesMetrics.xsl
- ndependreport-ccnet-AssembliesDependencies.xsl
- ndependreport-ccnet-InfoWarnings.xsl
- ndependreport-ccnet-TypesMetrics.xsl
- ndependreport-ccnet-TypesDependencies.xsl
※ 日本語化されている方もとりあずwebdashboardのxsl直下に置いてください。
原因は分かりませんがファイルのアクセス拒否が発生するので。
5.webdashboard.configを修正する。
<buildPlugins> <!-- Content snipped --> <xslReportBuildPlugin description="NDepend Full Report" actionName="NDependBuildReport" xslFileName="xsl\ndependreport-ccnet.xsl" /> <xslReportBuildPlugin description="NDepend Summary Report" actionName="NDependSummaryBuildReport" xslFileName="xsl\ndependsummary-ccnet.xsl" /> <xslReportBuildPlugin description="NDepend Application Metrics Report" actionName="NDependApplicationMetricsBuildReport" xslFileName="xsl\ndependreport-ccnet-ApplicationMetrics.xsl" /> <xslReportBuildPlugin description="NDepend Assemblies Metrics Report" actionName="NDependAssembliesMetricsBuildReport" xslFileName="xsl\ndependreport-ccnet-AssembliesMetrics.xsl" /> <xslReportBuildPlugin description="NDepend Assemblies Dependencies Report" actionName="NDependAssembliesDependenciesBuildReport" xslFileName="xsl\ndependreport-ccnet-AssembliesDependencies.xsl" /> <xslReportBuildPlugin description="NDepend Info and Warnings Report" actionName="NDependAssembliesInfoWarningsBuildReport" xslFileName="xsl\ndependreport-ccnet-InfoWarnings.xsl" /> <xslReportBuildPlugin description="NDepend Types Metrics Report" actionName="NDependTypesMetricsBuildReport" xslFileName="xsl\ndependreport-ccnet-TypesMetrics.xsl" /> <xslReportBuildPlugin description="NDepend Types Dependencies Report" actionName="NDependTypesDependenciesBuildReport" xslFileName="xsl\ndependreport-ccnet-TypesDependencies.xsl" /> <!-- Content snipped --> </buildPlugins>
6.ccnet.configに下記のマージを追加
- ApplicationMetrics.xml
- AssembliesBuildOrder.xml
- AssembliesDependencies.xml
- AssembliesMetrics.xml
- InfoWarnings.xml
- NDependMain.xml
- TypesDependencies.xml
- TypesMetrics.xml
7.結果はこんな感じ。
- Summary
- ApplicationMetrics
- AssembliesMetrix
- AssembliesDependencies
- InfoAndWarnings
- TypesMetrix
- TypesDependencies
※画像が表示されないようなので調査します。
id:NAgilerさんのところで画像の表示方法が掲載されています。
via:CCNETでNDependのレポートを表示(^o^) - NAgilerの日記