在写单元测试用例的时候,我们将断言包装一层异常处理后,希望输出测试的结果,如图中代码所示,在except中定义了一个TestResult变量,在try/except之后打印测试结果,执行代码报错:
UnboundLocalError: local variable 'TestResult' referenced before assignment
有道翻译结果大致为: 局部变量未赋值前被引用
原因:断言成功后,代码会跳过except分支直接执行下面并列的print内容,
TestResult的赋值是放在except当中,因此未读取到TestResult的值,从而报错
解决办法:可以分别在try、except里边进行变量赋值,例如在try里面定义TestResult='pass',在except中定义TestResult=‘failed’。
另外需要注意的是,如果我们希望断言不通过的情况下输出failed,需要注释掉抛出异常的那部分raise e,不然代码抛出异常后就不会接着往下走了。
欢迎来到testingpai.com!
注册 关于