Pau*_*nta 17 python unit-testing
我正在使用Python的unittest库并且所有测试都成功,但我仍然得到了追溯,我无法理解如何解决问题.
........
----------------------------------------------------------------------
Ran 8 tests in 0.020s
OK
Traceback (most recent call last):
File "C:\Users\Paul\Desktop\bloomfilter\test_bloomfilter.py", line 85, in <module>
unittest.main()
File "C:\Programming\PythonX86\Python27\lib\unittest\main.py", line 95, in __init__
self.runTests()
File "C:\Programming\PythonX86\Python27\lib\unittest\main.py", line 231, in runTests
sys.exit(not self.result.wasSuccessful())
SystemExit: False
>>>
Run Code Online (Sandbox Code Playgroud)
mat*_*ski 14
您似乎正在使用Python shell运行,它会为您捕获异常,以便您可以继续调试.如果您一直在从命令行运行,那么该行
sys.exit(not self.result.wasSuccessful())
Run Code Online (Sandbox Code Playgroud)
会退出你的程序,退出代码为0,表示成功(如果你不熟悉程序如何与shell交互,这可能是违反直觉的).但是,由于您在解释器中运行,因此会捕获异常.
我建议您的程序或测试没有任何问题.unittests框架可能只是没想到会以交互方式运行!
Flo*_* B. 14
为了避免执行追溯结束:
if __name__ == '__main__':
unittest.main(exit=False)
Run Code Online (Sandbox Code Playgroud)
结束您的unittest文件:
if __name__=='__main__':
try:
unittest.main()
except SystemExit as inst:
if inst.args[0] is True: # raised by sys.exit(True) when tests failed
raise
Run Code Online (Sandbox Code Playgroud)