一个包含 N 个功能测试的文件夹正在被鼻子正确地发现并执行。我希望能够在任何时候中断套件,但到目前为止,nose 会停止当前正在运行的测试并继续进行下一个测试。
例如,如果在套件中途发生键盘中断,您如何正确退出鼻子?
一个包含 N 个功能测试的文件夹正在被鼻子正确地发现并执行。我希望能够在任何时候中断套件,但到目前为止,nose 会停止当前正在运行的测试并继续进行下一个测试。
例如,如果在套件中途发生键盘中断,您如何正确退出鼻子?
我通过捕获 SIGINT 并在其处理程序中设置了一个全局值来解决了这个问题。在 setUp() 夹具中检查此值,如果设置为套件中的每个后续测试引发 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
...