실제로는 startTest
후크를 사용하여 테스트를 중단 할 수 있다고 생각하지 않습니다. nose2
docs은 matchPath
또는 getTestCaseNames
을 사용하는 것이 좋습니다.
from nose2.events import Plugin
class SkipAllTests(Plugin):
configSection = "skipper"
commandLineSwitch = (None, 'skipper', "Skip all tests")
def matchPath(self, event):
event.handled = True
return False
matchPath
문서
실제로 명시 적으로 그것을 실행 테스트를 중지하는 방법을 설명합니다 :
플러그인은 로드되는 파이썬 모듈을 방지하기 위해이 훅을 사용할 수 있습니다 여기에 matchPath
를 사용하여 작업 예제가 테스트 로더에 의해로드되도록하거나 테스트 로더에 의해로드되도록한다. event.handled를 True로 설정하고 False를 반환하면 로더가 모듈을 건너 뛸 수 있습니다.
이 방법을 사용하면 테스트 사례가로드되지 않습니다. 당신이 생략으로 테스트가 실제로는 전혀 테스트의 목록에 표시하지 않고이없는 것보다, 목록에 표시하려는 경우 StartTestEvent
와 해커 약간의 작업을 수행 할 수 있습니다 여기에
def dummy(*args, **kwargs):
pass
class SkipAllTests(Plugin):
configSection = "skipper"
commandLineSwitch = (None, 'skipper', "Skip all tests")
def startTest(self, event):
event.test._testFunc = dummy
event.result.addSkip(event.test, 'skip it')
event.handled = True
우리는 테스트가 실행될 실제 함수를 아무것도 수행하지 않는 더미 함수로 대체합니다. 이렇게하면 테스트가 실행될 때 no-ops가 표시되고 건너 뛴 것으로보고됩니다.
그래, 내가 생각할 수있는 최선의 방법 이었어. 미래의 시청자들에게'setUp'과'tearDown' 메소드를 dummy 함수로 패치 할 수 있습니다. 그것들은 여전히 바람직하지 않을 수도있다. –