python selenium自动化测试,监听断言后生成的报告中没有fail

例如
flag = True
当我直接使用assertEqual(flag,True)时,利用HTMLTestRunner生成的测试报告则有fail
图片说明

当我需要监听此断言时
try:
self.assertEqual(flag,True)
print ('Test Pass.')
except Exception as e:
print ('Test Fail.', format(e))
此时无论flag是True或False,生成的测试报告均通过,虽然在生成报告的结果中可以看到断言结果是Test Pass还是Test Fail
图片说明

目前我采用的方法是在except下加raise抛出异常
try:
self.assertEqual(flag, True)
print ('Test Pass.')
except Exception as e:
if flag != True:
raise NameError,'test fail'
print ('Test Fail.', format(e))

这样生成的报告中,断言通过的用例就是pass,断言失败的就是error
图片说明

请问如何在监听断言的同时让HTMLTestRunner生成的结果中是有fail的,是我的思路错了还是为什么,求各路大神帮忙解答~

这么跟你说吧 junit的断言实际上就是抛出了一个异常 你捕获了 那junit怎么知道你断言是异常呢

把断言放在外面,不要放在try后面,你断言fail之后,异常被你的exception处理了,所以你最后运行完是没有异常的