[Jenkins]持續整合之路(七)程式碼檢查(SonarQube)

在第四個關卡中(Test and Scan),除了自動測試,另一個需要持續整合的就是程式碼檢查了。除了常用的程式碼風格(StypeCop)、收集程式碼警告(Warnings) 到程式碼度量(SourceMonitor)、程式碼行數(SLOCCount)及未完成工作的plugin(Task Scanner)外,通常可能會加上源碼檢測工具(Fortify SCA、Checkmarx),不過最近被老闆交代看好進行中專案的技術債(Technical debt),試用了一陣子SonarQube來把關程式碼品質,透過量化的技術債指標來盯緊品質,來筆記安裝及搭配Jenkins組態過程。

 

...繼續閱讀 »

[Jenkins]持續整合之路(六)使用MSTest framework建立單元測試(MSTest and VSTest Runner Plugin)

走過前幾天持續整合之路,每天我們可以確保專案擁有能編譯正確的程式版本,完成了最基本的版控和Daily Build要求。不過,我們開發的log程式沒經過測試,執行整合後,如果直接佈署上SIT/QA測試機,一定有被開單和罰站的風險,雖然面對可怕的使用者,我們心無雜念,更練就老僧入定的技巧,但還是要讓自己能免於老闆的關心,來補簡單的單元測試,讓CI Server幫我們持續整合,未來收到千變萬化的使用者需求,我們也能既快速又自動的執行基本測試。

...繼續閱讀 »

[Jenkins]持續整合之路(二)準備編譯.NET程式的環境(安裝MSBuild及NuGet Plugin)

支援的專案都是以.NET(C#)開發為主,走進CI持續整合之前,得先幫Jenkins Server準備好可以編譯.NET程式的環境並且完成Jenkins的MSBuild組態工作。在建置過程中,專案也可能需要還原NuGet 上的套件,同時library專案建置完成後,也希望將編譯並且測試好的套件發佈到公司內的Private NuGet Server,好,來完成準備工作。

...繼續閱讀 »

[ASP.NET][WebForm]從Main Page傳遞方法給User Control執行

同事的專案寫了一個控制Gridview每頁顯示幾筆的Custom Control(user control)。但同事初始設計時,Custom Control內容只有一個下拉選單DropDownList,沒有把她和gridview結合在一起;後面開始大量開發表單時也沒特別在分頁筆數控制項加上Postback時對應控制Main page Gridview更新的方法,因此當user選擇新的筆數選項後,Gridview內容不會同步更新,使用者操作有點不順手,被開單告發了,來前線救援。

...繼續閱讀 »

[SQL Server][Data Exception]寫入或更新資料時,讓SQL暫時自動截斷過長的字串

最近同事在匯入大量資料常碰到SQL Msg 8152, String or binary data would be truncated,中文訊息是是字串或二進位資料會被截斷。

除了找出有問題的資料行與列或是將欄位型別改為varchar(max)兩個方法外,能不能在SQL裡自動截斷過長的資料,不要讓SQL出現錯誤?

...繼續閱讀 »