今天搭建Jenkins持續集成環境,編譯環境是.net,在.net下沒有比較好的代碼覆蓋率測試插件,所以用了開源的OpenCover,計算代碼覆蓋率,然后用ReportGenerator導出hmtl格式的測試報告。這里用到了批處理腳本,到這里問題出現了。
腳本寫好之后在Windows系統下直接運行沒有任何問題。但你要把它放在Jenkins里作為編譯后執行的話就會報錯,很詭異。我自已也懷疑是用戶權限的問題。但用普通用戶直接運行腳本也還是沒問題。下午google了一下。按照http://stackoverflow.com/questions/10952280/execute-windows-batch-command-from-jenkins-fails-but-runs-fine-in-cmd-exe 提供的方式試了一下OK了。
方法很簡單。就是登錄 Jenkins service。
具體過程:
在"運行"中輸入"services.msc"打開服務窗口,找到"Jenkins".
然后右鍵屬性,在“登錄”導航中選擇“此用戶”任何輸入能夠運行CMD.exe的用戶。這里我用了管理員用戶。