在昨天的文章之中,我們了解了如何使用StyleCop,
透過它我們可以找出程式碼是否有不符合規範的地方,
但如果可以讓它在每日建置的時候,
都能夠產生一份程式碼規範檢查的報表,
並且當有大量不符合規範的程式碼時,就發送警告通知,
如此一來,我們可以確保我們的程式碼隨時都維持在高品質的狀態,
不會等到有大量程式碼不符合規範時為時已晚,
今天將向大家介紹如何在建置時整合StyleCop,並顯示統計報表。
※使用MsBuild執行StyleCop掃描
StyleCop雖然沒有提供CommandLine程式來執行掃描,
但它提供了MsBuild的Target,可以讓我們整合進建置工作中,
在日後的章節,我會再向大家詳細介紹MsBuild的語法。
為了希望所有的專案都可以直接透過同樣的設定檔來執行StyleCop掃描,
所以我準備了一個可共用的MsBuild檔案,同樣的將它存放在C:\CI_Tools\StyleCopSetting.xml,
它預設將會對專案資料夾下所有的cs檔做掃描 (但會排除Test.cs結尾的檔案)。
<?xml version="1.0" encoding="utf-8"?>
<Project Defaulttargets="StyleCop" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<!-- file want to scan -->
<AnalysisFileIncludes>$(MSBuildStartupDirectory)\**\*.cs</AnalysisFileIncludes>
<!-- file dont want to scan -->
<AnalysisFileExcludes>$(MSBuildStartupDirectory)\**\*Test.cs</AnalysisFileExcludes>
</PropertyGroup>
<UsingTask AssemblyFile="$(MSBuildExtensionsPath)\..\StyleCop 4.7\StyleCop.dll" TaskName="StyleCopTask"/>
<Target Name="StyleCop">
<!-- Create a collection of files to scan -->
<CreateItem Include="$(AnalysisFileIncludes)" Exclude="$(AnalysisFileExcludes)">
<Output TaskParameter="Include" ItemName="StyleCopFiles" />
</CreateItem>
<!-- Execute stylecop scan -->
<StyleCopTask
ProjectFullPath="$(MSBuildProjectFile)"
SourceFiles="@(StyleCopFiles)"
ForceFullAnalysis="true"
TreatErrorsAsWarnings="true"
OutputFile="$(MSBuildStartupDirectory)\StyleCopReport.xml"
CacheResults="true" />
</Target>
</Project>
接下來進入Jenkins專案首頁,進入設定畫面
一樣找到Build區段,新增使用MsBuild來進行專案的建置
選擇使用MsBuild4.0建置,並選擇使用我們之前寫好的MsBuild檔案
C:\CI_Tools\StyleCopSetting.xml
儲存檔案並建置,在"畫面輸出"我們可以看到StyleCop的執行結果
※安裝報表Violations PlugIn
※設定報表顯示StyleCop
※總結
設定完成之後,在每日建置工作執行時,
也會同時檢查目前程式碼是否符合規範,
如果今天所更改的程式有不符合程式碼規範的情況發生時,
就可以在第一時間通知相關的人員負責修正,
就可以避免等到日後發現確難以維護的問題產生,
大大的增加了版本控制系統上程式碼的可讀性,
這也是在軟體團隊開發中相當重要的一環。
關於今天的內容,如果有任何問題歡迎大家提出來一起討論。