2014-02-10 54 views
0

我有有許多測試用例的遠程服務器(不知道它是什麼OS) 和Python測試文件上安裝詹金斯(即DEF())的Python +詹金斯的工作給結果碼= 0失敗的測試用例

當我運行詹金斯作業。它提供了有關控制檯輸出,其中某些測試通和其他失敗,但是在控制檯輸出的末尾它表明:

********************************************************************************************************************************** 
------------------------------------------------------------ 
Test complete. Result code = 0 
STS: smoke_1 
Unlock Code: 2014021009141392041655 
------------------------------------------------------------ 
Archiving artifacts 
Email was triggered for: Success 
Sending email for trigger: Success 
Sending email to: xxx 
Notifying upstream projects of job completion 
Finished: SUCCESS 
*********************************************************************************************************************** 

爲什麼是結果代碼= 0以上時一些測試通過和其他人在python文件中失敗, 我該如何糾正結果代碼爲非零值?

Jenkins或Python代碼有些錯誤嗎?

+0

有幾種方法可以在jenkins中運行python,但最終腳本需要爲jenkins返回一個非零值來將其識別爲錯誤。要麼你有一個不返回零的蹩腳的測試用例執行器,或者調用它的jenkins腳本不記得並返回不良退出值。 – tdelaney

回答

0

我在windows機器上通過瀏覽器使用Jenkins,所以對終端命令沒有太多的想法。但讓我告訴你的代碼:

這是我的代碼:

print 'result code before subprocess: ' 
print result_code 
result_code = subprocess.call(command) 
print 'result code after subporcess: ' 
print result_code 

之前subprocess.call(命令)RESULT_CODE是-1(默認) 後subprocess.call(命令)RESULT_CODE是0

where command ='jenkins/abc.sh' 其中abc.sh從裏面調用abc.py文件!

如果abc.py中的所有def()都成功執行,將subprocess.call(command)返回零,或者如果abc.py中的所有def()返回都會通過,它會返回零嗎?

在我的情況下,一些def()通過,一些失敗,但仍然subprocess.call(command)返回零! 這是正確的嗎?

如果我想subprocess.call(command)返回非零,如果一些def()內部失敗abc.py?