unittest使用assert之后截图一直没运行,assert断言结果是fail之后,该断言语句之后的语句是不会执行的。
****使用了assert程序没报错误,导致我忽略了这个实际上是错误的。
原来的代码:
para_dst=[("April.first.Sunday.23","January.the second.Monday.0","0"),("December.the last one.Wednesday.21","August.the third.Thursday.11","120")]
@parameterized.expand(para_dst)
def test_032_TimeSetDst(self,StartTime,EndTime,AheadofTime):
try:
result=self.action.SetDST(StartTime,EndTime,AheadofTime)
time.sleep(1)
except Exception:
traceback.print_exc()
self.imgs.append(self.action.dr.get_screenshot_as_base64())
finally:
print(result)
if result==True:
self.assertTrue(result)
else:
self.assertTrue(result[0], result[1])
self.imgs.append(self.action.dr.get_screenshot_as_base64())
之前一直不明白为啥最后一句的截图没有截图,脑袋感觉一时没转过来弯。。。。
这里就要说一下assert这个断言模块
实际上断言结果是失败的时候,程序是抛出了错误的,查看执行结果也是:
其实查看这个就看到assert是触发了错误的,触发的错误名称是AssertionError,此时实际上测试用例的语句已经停止运行了,所以后面的语句是不会执行的。
修改为下面的代码就存在截图了,
,```
para_dst=[("April.first.Sunday.23","January.the second.Monday.0","0"),("December.the last one.Wednesday.21","August.the third.Thursday.11","120")]
@parameterized.expand(para_dst)
def test_032_TimeSetDst(self,StartTime,EndTime,AheadofTime):
try:
result=self.action.SetDST(StartTime,EndTime,AheadofTime)
time.sleep(1)
except Exception:
traceback.print_exc()
self.imgs.append(self.action.dr.get_screenshot_as_base64())
finally:
print(result)
if result==True:
self.assertTrue(result)
else:
if result[0]==False:
self.imgs.append(self.action.dr.get_screenshot_as_base64())
self.assertTrue(result[0], result[1])
后面我又进行了另外一个修改
para_dst=[("April.first.Sunday.23","January.the second.Monday.0","0"),("December.the last one.Wednesday.21","August.the third.Thursday.11","120")]
@parameterized.expand(para_dst)
def test_032_TimeSetDst(self,StartTime,EndTime,AheadofTime):
try:
result=self.action.SetDST(StartTime,EndTime,AheadofTime)
time.sleep(1)
except Exception:
traceback.print_exc()
self.imgs.append(self.action.dr.get_screenshot_as_base64())
finally:
print(result)
if result==True:
self.assertTrue(result)
else:
try:
self.assertTrue(result[0], result[1])
except AssertionError:
self.imgs.append(self.action.dr.get_screenshot_as_base64())
运行结果:pass
***所以这个错误不能catch,catch了之后assert那边就变成成功了,这个暂时还不懂,后面再研究他的逻辑,有懂得小伙伴来解释下呀!