[jenkins 2]在jenkins建置後執行Ms Test和Stylecop(jenkins 2.0)

在每次jenkins建置後,去執行單元測試和產生測試報告,還有檢視程式碼是否符合stylecop規則

建置後執行stylecop程式碼分析

請先至管理外掛的部份安裝Violations

接著請在硬碟上建立要執行stylecop規則的xml,特別注意一下AnalysisFileIncludes是要掃描是否符合stylecop的檔案,而AnalysisFileExcludes則是要排除的,請自行去設定,而我建立這個檔案名稱為StyleCopSetting.xml

<?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;
      $(MSBuildStartupDirectory)\**\*AssemblyInfo.cs;
			$(MSBuildStartupDirectory)\**\*.Designer.cs;
      $(MSBuildStartupDirectory)\**\Reference.cs;
      $(MSBuildStartupDirectory)\**\Configuration.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>

接著進到專案的組態裡面新增排程

然後新增一個建置步驟為MsBuild的

然後填上我們剛剛寫的xml位置,需注意在建置的順序會按照你排定的順序執行,我目前是先執行nuget再建置c#專案然後才是執行stylecop,注意一下MSBuild Build File則是你儲存setting file的位置

接著則是新增一個建置後動作


在stylecop的欄位key入我們剛剛的StyleCopSetting.xml的OutputFile的檔名名稱

儲存之後我們來執行建置一下專案,卻會發現好像沒吃到專案的設定,目前我專案執行stylecop是全部通過的

但是在jenkins上面卻是有一堆錯誤的

其實那是因為jenkins吃的stylecop的setting是安裝的位置,所以我們把專案上用到的複製到安裝的位置,以筆者的安裝位置應該是"C:\Program Files (x86)\StyleCop 4.7",接著再執行一次可以看到全部都已符合規則了

執行完stylecop後再執行Ms Test並產生報表分析

先到管理jenkins的外掛程式管理安裝Ms Test相關的plugin

安裝完成後,先去設定MsTest的設定值

以筆者的設定Name為MS TEST 14,Path To MSTest為C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\MSTest.exe

設定完成之後則到專案的組態設定裡面,新增建置步驟

Test Files如果不知道路徑,可以到專案的工作目錄查詢

接下來新增建置後動作,以便測試後產生報表提供細節給我們查看。

接著我們再針對此專案執行建置來看看結果

可以點測試結果進去查看