unittest 獲取所有用例 + 失敗重運(yùn)行 + 屏幕喚醒

TestSuite.run源碼修改 ?

摘抄自:https://blog.csdn.net/hqzxsc2006/article/details/50349664

def run(self,result, debug=False):

? ? failcount= 1? # 失敗總運(yùn)行次數(shù)

? ? class_num= 1

? ? topLevel= False

? ? if getattr(result,'_testRunEntered',False) is False:

? ? ? ? result._testRunEntered= topLevel= True

? ? for testin self:

? ? ? ? case_num= 1

? ? ? ? if result.shouldStop:

? ? ? ? ? ? break

? ? ? ? success_flag= True

? ? ? ? while success_flag:

? ? ? ? ? ? if _isnotsuite(test):

? ? ? ? ? ? ? ? self._tearDownPreviousClass(test,result)

? ? ? ? ? ? ? ? self._handleModuleFixture(test,result)

? ? ? ? ? ? ? ? self._handleClassSetUp(test,result)

? ? ? ? ? ? ? ? result._previousTestClass= test.__class__

if (getattr(test.__class__,'_classSetupFailed',False) or

? ? ? ? ? ? ? ? ? ? ? ? getattr(result,'_moduleSetUpFailed',False)):

? ? ? ? ? ? ? ? ? ? if class_num> failcount:

? ? ? ? ? ? ? ? ? ? ? ? success_flag= False

? ? ? ? ? ? ? ? ? ? else:

? ? ? ? ? ? ? ? ? ? ? ? time.sleep(5)

? ? ? ? ? ? ? ? ? ? ? ? result._previousTestClass= None

? ? ? ? ? ? ? ? ? ? ? ? print('類%s第%s次重新初始化執(zhí)行' % (test.__class__, class_num))

? ? ? ? ? ? ? ? ? ? ? ? class_num+= 1

? ? ? ? ? ? ? ? ? ? continue

? ? ? ? ? ? if not debug:

? ? ? ? ? ? ? ? test(result)

? ? ? ? ? ? else:

? ? ? ? ? ? ? ? test.debug()

? ? ? ? ? ? if result.result[-1][0] == 1 or result.result[-1][0] == 2:? # 結(jié)果為fail和err用例判斷

? ? ? ? ? ? ? ? if case_num> failcount:

? ? ? ? ? ? ? ? ? ? success_flag= False

? ? ? ? ? ? ? ? else:

? ? ? ? ? ? ? ? ? ? print('用例%s第%s次重新執(zhí)行' % (test, case_num))

? ? ? ? ? ? ? ? ? ? case_num+= 1

? ? ? ? ? ? else:

? ? ? ? ? ? ? ? success_flag= False

? ? if topLevel:

? ? ? ? self._tearDownPreviousClass(None,result)

? ? ? ? self._handleModuleTearDown(result)

? ? ? ? result._testRunEntered= False

? ? return result


獲取所有測試用例

屏幕喚醒我們可以用adb shell 命令執(zhí)行 (在python 使用system模塊執(zhí)行cmd命令)

tip:需要先設(shè)置取消圖形解鎖 ?

import os

com='adb shell input keyevent 26 && adb shell input swipe 500 700 500 50'

os.system(com)

HTMLTestRunner 執(zhí)行并生成報(bào)告

test_report_dir= 'F:\\result' ? ? ?????????????????????????????????#存放報(bào)告地址

now= time.strftime('%Y-%m-%d_%H_%M_%S_') ? ? #生成運(yùn)行時(shí)間點(diǎn)

filename= test_report_dir+ '\\' + now+ 'result.html' ? ? #生成報(bào)告文件名

fp= open(filename,'wb') ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#打開文件

alltest= creatSuite() ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#獲取用例

runner= HTMLTestRunner(stream=fp,title=u'測試報(bào)告',description=u'用例執(zhí)行情況:')

runner.run(alltest) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #運(yùn)行用例

fp.close() ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#關(guān)閉文件

new_report= new_file(test_report_dir)? ? ? ? ? ? ? ? ? ? ? ?#取最新測試報(bào)告

send_email(new_report) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #發(fā)送郵件,發(fā)送最新測試報(bào)告html?

(send_email 方法已封裝 ?可參考http://www.cnblogs.com/yufeihlf/p/5752146.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容