2016-04-20 70 views
0

對於使用Jenkins的項目,我希望能夠運行Python單元測試。這些測試包含與嵌入式設備的交互。結果應該報告給詹金斯。運行python單元測試並將結果輸出到Jenkins

我(使用Python 2.7)當前的設置是以下

| 
| helperModules 
|-- customlogger.py 
|-- settings.py 
|-- serial.py 
| tests 
|-- test_login 
|-- test_communicate_serial 
| start.py 

在根目錄下我有一個名爲start.py一個文件,它初始化如自定義記錄器的一些設置和運行前加載一些常規設置單位測試。測試本身位於目錄測試中,測試目前基於Python的unittest,並由start.py執行。

由於我想運行測試並生成詹金斯可讀的報告,我想知道我應該採取哪些步驟。使用py.test,nose還是xmlrunner?由於鼻子可能會停止維持,因此這不是優選的。我是否應該使用py.test,是否需要修改我的設置並嘗試刪除start.py。我在start.py中設置的日誌記錄對於調試是必需的,所以如果我需要將它替換到測試用例中,它會改變我當前的設計,但是這種日誌記錄是必需的。

好奇你對此的看法,你將如何繼續。

回答

0

在這篇文章之後,我開始嘗試pytest並在當前的start.py中進行了整合。

import pytest 
    . 
    . 
pytest.main("--junitxml=\"report\test.xml\"") 

當所有設置完成後,我用參數調用這個pytest.main來生成xml文件。它自動發現我的單元測試並執行它們。

它看起來像整合很容易,仍然保持與我的設置兼容。希望這個答案也能幫助別人。

另一個優點是,我還可以從課程的命令行運行測試時記錄的設置不會發生運行

python -m pytest --junitxml=test.xml 

,但測試運行它可以是一個很好的功能。