iT邦幫忙

DAY 10
1

使用Jenkins打造.Net CI Server系列 第 10

CI Server 10 - 讓Jenkins顯示StyleCop報表

在昨天的文章之中,我們了解了如何使用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

  1. 進入Jenkins首頁後,點選左邊的管理Jenkins,再選擇管理外掛程式
  2. 點選可用的,勾選Violations PlugIn,選擇安裝並重啟

※設定報表顯示StyleCop

  1. 回到Jenkins專案首頁,進入設定畫面
  2. add post build action,新增Report Violations
  3. 在stylecop的xml filename pattern輸入StyleCopReport.xml
  4. 儲存後並重新建構,回到首頁我們可以看到已經產生報表
  5. 點選圖表後,我們可以看到每個cs檔的掃描資料
  6. 點選單一cs檔,還可以看到哪一行程式碼不符合規範,
    將滑鼠移到驚嘆號上會顯示錯誤的詳細訊息

※總結
設定完成之後,在每日建置工作執行時,
也會同時檢查目前程式碼是否符合規範,
如果今天所更改的程式有不符合程式碼規範的情況發生時,
就可以在第一時間通知相關的人員負責修正,
就可以避免等到日後發現確難以維護的問題產生,
大大的增加了版本控制系統上程式碼的可讀性,
這也是在軟體團隊開發中相當重要的一環。
關於今天的內容,如果有任何問題歡迎大家提出來一起討論。


上一篇
CI Server 09 - 統一程式碼撰寫風格 (StyleCop)
下一篇
CI Server 11 - 靜態程式碼分析 (FxCop)
系列文
使用Jenkins打造.Net CI Server30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言