2011-09-04 8 views
1

다른 파이썬 모듈이 구현하는 기본 클래스 집합을 정의하는 파이썬 모듈 하나가 있습니다.다른 모듈에서 TestCase 서브 클래스 집합을 동적으로 생성하려면 어떻게해야합니까?

핵심 파이썬 모듈에는 기본 클래스가 올바르게 구현되었는지 테스트하는 테스트 사례도 있습니다.

두 번째 모듈의 테스트 스위트에서 첫 번째 모듈에서 TestCase 하위 클래스를 자동으로 생성하고 특정 구현에 필요한 setUp()을 추가하는 mixin을 추가하려고합니다.

필자는 parametrizing 테스트 케이스에 대한 답을 많이 보았지만 필자의 경우에는 공통 클래스를 다시 사용하고 모든 클래스를 서브 클래스로 만들고 싶다.

테스트의 이름을 다르게 지정하고 모두 자동으로 실행하는 한 상위 테스트 모듈에서 코드를 인스턴스화해야하는 것은 괜찮습니다.

중요한 점은이 코드는 표준 unittest에 대해 twisted 및 trial을 사용하고 있다는 것입니다.

+0

멋진 이야기 형제, 당신은 질문을 잊어 버렸습니다. –

+1

응? 저기에있어. 이야기는 질문에 대한 설명입니다. –

답변

3

원하는 것을 거의 정확하게 수행 할 수있는 것은 twisted.internet.test.reactormixins.ReactorBuilder입니다. 예를 들어 test_tcp에서 사용 된 모습을 볼 수 있습니다.

+0

감사합니다. Glyph, 저에게 올바른 방향으로 지적했습니다. makeTestCaseClasses를 가져 와서 동일한 모듈에 정의 된 일반적인 테스트 케이스 목록을 사용하여 모듈 함수로 변경했습니다. 여전히 나를 괴롭히는 유일한 것은 모듈의 맨 위에있는 __metaclass__ = type입니다. 그게 필요한가요? 그것은 무엇을합니까? 꽤 unginable. –

+0

그냥 명시 적 기본 클래스없이 해당 모듈에 정의 된 모든 클래스를 새 스타일로 만듭니다. 그것은 쓰레기 클래스를 정의하고':'앞에'(객체)'를 잊어 버리는 누군가를 보호합니다. – Glyph

관련 문제