1

一个包含 N 个功能测试的文件夹正在被鼻子正确地发现并执行。我希望能够在任何时候中断套件,但到目前为止,nose 会停止当前正在运行的测试并继续进行下一个测试。

例如,如果在套件中途发生键盘中断,您如何正确退出鼻子?

4

1 回答 1

0

我通过捕获 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

        ...
于 2013-07-26T13:45:27.823 回答