traceback导入import traceback
测试用例写法如下:
class test_CameraT(unittest.TestCase):
action=TimeSet()
def setUp(self):
# 测试固件的setUp()的代码,主要是测试的前提准备工作
warnings.simplefilter('ignore',ResourceWarning)
# self.imgs=[]
# self.driver=eval(UserData.Driver)
def tearDown(self):
# 测试结束后的操作,这里基本上都是关闭浏览器
driver=self.action.dr
driver.quit()
time.sleep(1)
ProcessName=UserData.Driver
if ("Firefox" in ProcessName):
print(os.popen('taskkill /f /im firefox.exe').read())
elif("Chrome" in ProcessName):
print(os.popen('taskkill /f /im chrome.exe').read())
else:
print(os.popen('taskkill /f /im iexplore.exe').read())
# #测试单独修改时区
para_timezone=['GMT-12:00','GMT+12:00','GMT+03:00']
@parameterized.expand(para_timezone)
def test_027_TimeSetOnlyTimeZone(self,TimeZone):
# try:
result="self.action.SetTimeZoon("+'"'+TimeZone+'"'+")"
print( result)
eval(result)
# except:
# result=[False,"test run error"]
# finally:
if result==True:
self.assertTrue(result)
else:
self.assertTrue(result[0],result[1])
如图注释这里,如果按如图处理程序如果跑错,则直接处理了(而且如果按照我上述的处理指挥出来成功和失败,error的全部被处理为错误的了),后续看python报告里面的traceback根本看不出来跑出了什么问题,同时我希望跑错误和跑失败的时候均进行截图处理,采用的driver库里面的get_screenshot_as_base64()截图
所以修改上述代码为:
def test_027_TimeSetOnlyTimeZone(self,TimeZone):
try:
result="self.action.SetTimeZoon("+'"'+TimeZone+'"'+")"
print( result)
eval(result)
except EXCEPTION:
# result=[False,"test run error"]
traceback.print_exc()
self.action.dr.get_screenshot_as_base64(self)
raise EXCEPTION
finally:
if result==True:
self.assertTrue(result)
else:
self.assertTrue(result[0],result[1])
if result[0]==FALSE:
self.action.dr.get_screenshot_as_base64(self)
****其中raise EXCEPTION可能不用加,因为下面的result这里同样会触发error,如果测试用例出错的话,但是可能打印会屡有不同,后续我实践之后再来添加结果。
上述是我目前的处理方法,希望有其他方法的大神指正!