테스트 로더를위한 편리한 장소처럼 들립니다.
체크 아웃 http://docs.python.org/library/unittest.html#unittest.TestLoader.loadTestsFromName
당신은 아마 당신의 테스트 명명 규칙에 따라 스위트 룸을 만들 수있는 적절한 명명 규칙을 제공합니다.
AIX, Linux (모두) 및 32 비트 Windows에서 실행되는 테스트 A가 있고 Windows 64, Linux 64 및 Solaris에서 실행되는 테스트 B 및 HPUX 및 테스트 D를 제외한 모든 시스템에서 실행되는 테스트 C가있는 경우 모든 것을 실행하는 ... 가능한 이름 지정 규칙은 무엇입니까?
class TestA_AIX_Linux2_Win32(unittest.TestCase):
class TestB_Win64_Linux64_Solaris(unittest.TestCase):
class TestC_AIX_Linux2_Win32_Win64_Linux64_Solaris(unittest.TestCase):
class TestD_All(unittest.TestCase):
어려운 부분은 "HP/UX가 아닙니다"입니다. 부정 논리를 피하면 삶이 더 쉬워집니다. 이 경우 HP/UX가 아닌 모든 OS를 나열하면됩니다. 목록은 상당히 짧으며 서서히 커집니다.
"모든"테스트는 현재 플랫폼의 테스트 목록과 병합 된 별도의 텍스트 검색으로 완벽한 제품군을 만듭니다.
당신은 당신의 텍스트 매칭 규칙은 일반적으로 "_someOSName"
입니다
class TextC_XHPUX(unittest.TestCase):
같은 것을 시도해 볼 수도 있습니다; 귀하의 예외는 "_X"
이름으로 주위를 어지럽히는 별난 텍스트 필터가 될 것입니다.
"우리는 새로운 운영체제를 추가 할 때마다 명시 적으로 포함하도록 모든 테스트의 이름을 변경해야합니까?" 예. 새로운 운영 체제 시장은 진화 속도가 느려지므로 관리하기가 어렵지 않습니다.
대안은 각 클래스 (즉, 클래스 레벨 기능) 또는 데코레이터 내에 정보를 포함시키고 클래스 레벨 기능을 평가하는 맞춤형 클래스 로더를 사용하는 것이다.
몇 차례에
SkipTest도 매우 편리합니다 - 건너 뛰기 옵션이 있습니다. – Almad