包含N次功能测试的文件夹正由nose正确发现并执行。我希望能够在任何时候打断套件,但到目前为止,鼻子会停止当前正在运行的测试并继续下一个。
例如,如果在套件中途发生KeyboardInterrupt,你如何正确地退出鼻子?
答案 0 :(得分:0)
我通过捕获SIGINT修复了问题,并在其处理程序中设置了一个全局值。在setUp()fixture中检查此值,如果设置,则为套件中的每个后续测试引发SkipTest。
这样就可以完成当前运行的测试,之后将跳过所有后续测试。
from nose.plugins.skip import Skip, SkipTest
test_interrupted = False
class Test_something:
def __init__(self):
...
signal.signal(signal.SIGINT, self.signalHandler)
def signalHandler(self, signal, frame):
global test_interrupted
test_interrupted = True
def setup(self):
if test_interrupted:
raise SkipTest
...