2013-05-31 26 views
12

我已經成功安裝了Cobertura以運行Jenkins並生成覆蓋率報告,現在我一直在配置Violations以報告pep8測試的結果。爲詹金斯/違規使用生成PEP8 xml報告

現在我擁有它,這樣我就可以使用批處理命令運行PEP8並生成一個.txt文件,該文件存儲工作區中結束的所有違規行爲。

是否必須定義批處理命令以創建xml文件,以便將這些違規發送到Report Violations Post-build操作?如果是這樣,我將如何定義該命令?

+0

AFAIK在報表違規行爲pep8行中添加pep8輸出文件名稱(工作區內)是您需要做的唯一步驟,以便讓結果顯示在jenkins中... –

回答

24

正如Vajk指出的,你不需要一個XML文件。您可以簡單地將pep8實用程序的輸出傳輸到一個文件,並將其用作Jenkins中的違規文件。

例如,在您的詹金斯構建配置下:

Build -> Execute Shell -> Command 

你可以寫:

pep8 path/to/code > pep8_report.txt 

然後在:

Post-build Actions -> Report Violations -> pep8/XML filename pattern 

地址:

pep8_report.txt 

請注意,即使用戶界面要求提供XML文件,並且該文件不是XML文件,但在Jenkins版本1.499上,這對我來說工作得很好。

+0

您還可以使用[flake8] (https://flake8.readthedocs.org/en/2.3.0/index.html)輸出爲pep8違規。 – razz0

+1

我已經嘗試像上面這樣,它也適用於我,但問題是違規中的鏈接無法正常工作。 – parthiban

+0

我無法在「後期製作操作」中看到「報告違規行爲」。我錯過了一個插件嗎? (我已經安裝了Cobertura)。 – Will

0

我看到這是一個非常古老的問題,但我自己找了一個答案很麻煩,所以希望這可以幫助其他人。

經過大量的研究,我發現,詹金斯違規插件不喜歡每行前的./位,所以只解析PEP8的輸出(它也是有效的flake8)將這樣的伎倆:

pep8 . | 's|^./||' | tee pep.txt

在那裏最重要的一點是sed這改變了./的出現在字符串(^)爲「」的開始,有效地消除他們

的發球位是一些解決辦法,以避免詹金斯如果停止pep8命令的輸出不爲零。