nosetests가 유효한 테스트 클래스 인 클래스를 식별하는 방식과 관련하여 매우 이상한 문제 만 고려할 수 있습니다.Nosetests가 unittest discover가 수행하는 테스트 클래스를 보지 못함
def random_test_class(n):
print "Generating %d random test cases..." % n
def make_test(genre, ss, ps):
return lambda self: self.compose(genre, ss, ps)
return type('TestEverything', (TestBase,),
{ 'test_%d' % i: make_test(genre, ss, ps)
for (i, (genre, ss, ps)) in zip(xrange(n), generate_settings())
})
을하고, 경우에 지금
class TestEverything(random_test_class(100)):
pass
으로 적절한 클래스를 초기화하는 :
내가 사용하여 기본 테스트 클래스에서 특정 상속 일반적인 type
으로 테스트 클래스를 초기화하는거야 python -m unittest discover
으로 표준 테스트 프레임 워크를 호출하면 테스트가 매우 행복하며 100 테스트 메소드를 정의하는 테스트 클래스로 TestEverything
클래스를 봅니다 (test_1
, test_2
등 ...). 그러나 nosetests ./ -m "test_*"
을 사용하면 TestEverything
을 유효한 테스트 클래스로 간주하지 않으며 해당 테스트 메소드를 실행하지 않습니다.
어떻게 해결할 수 있습니까? nosetests
이 제공하는 xunit
출력 프레임 워크가 필요하지만 특정 테스트 메타 클래스를 사용하여 클래스를 올바르게 초기화하는 데 필요한 모든 메타 클래스 훅을 피하는 것이 좋습니다.