搭建基於Jenkins的CI伺服器

2022-07-18 03:45:11 字數 1781 閱讀 5411

安裝jenkins和建立任務這些操作網上一搜一大把,這裡就沒必要寫了,直接就開始編譯、單元測試,覆蓋,git提交觸發構建,構建失敗傳送給提交人郵件。

因為專案比較複雜,為了懶省事我直接在ci伺服器上安裝了visual studio 2017 (主要就是為了那個vsdevcmd.bat)。

這裡呢為了保證ci能夠正常編譯、執行單元測試、覆蓋率,我們對.net 專案做了如下約定:

1.單元測試一般使用xunit 進行編寫。

2.mock框架。

對於core 專案需要安裝一下幾個nuget包

1.coverlet.msbuild  覆蓋率

2.xunitxml.testlogger xml 格式記錄器

說完一些前置條件,現在開始正式的編譯,執行單元測試,覆蓋率

對於.net framework 專案我們的編譯肯定是使用msbuild 

第一條命令是在當前的命令列視窗建立乙個msbuild 指令,然後 進行nuget包還原,編譯專案 ,後面的引數可以自行修改。

第二條指令是進行單元測試與覆蓋率,因為執行覆蓋率時要執行單元測試,所以我就把兩條指令放在了一起,避免不必要的損耗。

生成覆蓋率報告我使用的工具是opencover ,opencover 生成的報告是xml格式,jenkins 無法識別(也可能是我不會折騰),所有我又使用了reportgenerator工具對xml 進行了乙個轉換,把它轉換成html格式。然後用jenkins的html 報表外掛程式展示出來。

對於單元測試報告,因為jenkins有相關的外掛程式,所以直接就用xunit生成的xml格式的測試報告就可以了。

這裡說明一下,在執行單元測試時我使用的xunit.console.exe 這個命令列工具。沒有把執行單元測試的步驟放入到msbuild任務中去,有興趣的人可以自行研究。

好了到這裡呢就完成了.net framework 專案的編譯、單元測試、覆蓋率 環節。

對於core專案,它的編譯我使用的dotnet build ***.sln 方式,單元測試使用的是dotnet test ***.csproj 。之前說過對於core的覆蓋率我使用的是coverlet.msbuild 這個msbuild 擴充套件命令工具包。所以在執行單元測試的同時就可以生成覆蓋率的報告。對於xunit的單元測試結果,我使用的xunitxml.testlogger 這個msbuild 擴充套件命令工具包。

具體的命令如下:

這乙個dotnet test命令就完成了所有的工作,同樣我最終還是使用reportgenerator這個工具將覆蓋率報告轉換成html格式。

最終的展示結果:

上圖是構建後的總覽圖。

上圖是覆蓋率結果報表。

單元測試報表

對於git提交後觸發構建,在git倉庫為專案新增乙個鉤子即可。

MAC搭建基於RTMP的本地Nginx伺服器

1 先安裝homeview 2 安裝nginx伺服器 homebrew nginx的git路徑變了 貌似是2018年3月更新 3 安裝nginx伺服器和rtmp模組 4 檢視nginx的資訊 5 配置rtmp和支援http協議拉流 7 安裝ffmepg工具 8 通過ffmepg命令進行推流測試 安裝...

基於 Jenkins 快速搭建持續整合環境

基於 jenkins 快速搭建持續整合環境 劉 華婷,軟體工程師,ibm 劉華婷是 ibm cstl 的一名軟體開發工程師,主要從事 director build 方面的工作,對持續整合有濃厚的興趣。簡介 持續整合是一種軟體開發實踐,對於提高軟體開發效率並保障軟體開發質量提供了理論基礎。jenkin...

基於Jenkins搭建自動化構建系統採坑記

客戶端發版之前總要經過測試部門的各種測試,像我廠的流程是 然後問題就來了,每次提測需要抽乙個同學來做這些事情,並且跑自動化測試的這些過程是沒辦法在研發人員技術內測的時候就能提供測試報告的。我廠的渠道數量已經達到了100 開發完新的業務需要全渠道發版的時候,還是需要單獨抽乙個同學出來跟進發版包,並且發...