2013-06-28 4 views
1

N 개의 기능 테스트를 포함하는 폴더가 Nose에 의해 올바르게 검색되고 실행됩니다. 어느 시점에서든 스위트를 중단 할 수 있기를 원하지만 현재까지 실행중인 테스트를 중단하고 다음 단계로 진행합니다.KeyboardInterrupt를 사용하여 테스트 제품군에서 코를 멈 춥니 다

예를 들어 SuiteInterrupt가 스위트의 중간에서 발생하는 경우 어떻게 제대로 종료할까요?

답변

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 

     ...