这是一个示例脚本,该脚本在第一个测试用例中检查前提条件,我的意图是在不满足前提条件的情况下中止脚本。
#!/usr/bin/python
import unittest
import sys
class TestMyScript(unittest.TestCase):
def test_000_prerequisite(self):
a = 0
if not a:
sys.exit()
return
def test_001_test1(self):
print "Inside test 1"
return
def test_002_test2(self):
print "Inside test 2"
return
if __name__ == "__main__":
unittest.main()
但是,sys.exit()仅从套件的单个测试用例中退出。它不会退出整个脚本。
我知道unittest会分别对待每个测试用例,这就是为什么由测试运行器处理由任何测试用例引起的任何异常并继续进行下一个测试用例的原因。
但是我想让脚本杀死自己。我怎么做?
这是我的脚本的输出:
./temp.py
EInside test 1
.Inside test 2
.
======================================================================
ERROR: test_000_prerequisite (__main__.TestMyScript)
----------------------------------------------------------------------
Traceback (most recent call last):
File "./temp.py", line 9, in test_000_prerequisite
sys.exit()
SystemExit
----------------------------------------------------------------------
Ran 3 tests in 0.000s
FAILED (errors=1)
我的猜测是,如果测试用例返回一些信号,我必须弄乱TestRunner并杀死脚本。但是我不确定如何真正实现它。
答案是:
这是我致电时需要进行的更改unittest.main()
。该failfast
关键字参数的第一次失败后停止脚本。
if __name__ == "__main__":
unittest.main(failfast=True)
psfailfast
关键字参数仅适用于python 2.7+
pps,您也可以failfast
在unittest.TextTestRunner()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句