2012-10-10 1 views
4

코사인 프레임 워크를 사용하여 Python으로 기능 테스트 및 유닛 테스트 케이스를 작성하기 시작했습니다. 우리는이 테스트를 작성하는 동안 파이썬을 배우기 시작했습니다. 우리의 테스트 클래스/함수들 사이에 많은 의존성이 있기 때문에 우리는 실행 순서를 제어하기 위해 코 꼭대기에 proboscis framework을 사용하기로 결정했습니다.print 문이 파이썬 코 프로세서에서 작동하지 않습니다

우리 테스트에서 꽤 많은 'print'문구가 있습니다. 그리고 주둥이가 이것을 무시하는 것처럼 보입니다! 테스트가 예상대로 실행되고 있고 테스트가 모두 실행되었지만 인쇄 명령문 데이터를 콘솔에 인쇄하지는 않습니다. 우리가 여기서 무엇을 놓치고 있는지 아는 어떤 생각?

BTW, 우리가 proboscis로 이동하고 @test로 모든 클래스와 멤버 함수를 장식하면 'unittest.TestCase'에서 클래스를 파생시키는 것을 중단했습니다.

+0

스택 오버플로에 오신 것을 환영합니다! [귀하의 질문을 연구하십시오] (http://stackoverflow.com/questions/how-to-ask). [이미 시도한 것] (http://whathaveyoutried.com/)이 있으면 질문에 추가하십시오. 아니라면 질문을 먼저 연구하고 시도한 다음 다시 방문하십시오. –

+2

@Tichodroma : 그들은 이미 뭔가를 시도한 것이 분명하다고 생각합니다. 코시체 프레임 워크의 테스트에서'print'를 사용하면 ... –

+0

'nose'는 stdout을 캡처하고 실패한 테스트 만 표시합니다. 'print' 사용에 대한 당신의 동기는 무엇입니까? 디버깅 할 때'print'를 사용한다면'logging' 모듈을 고려 했습니까? – geoffspear

답변

3

다음 documentation에 따르면 "사용되지 않는 인수는 코 또는 유닛 테스트 모듈에 전달하기"때문에 python run_tests.py으로 nosetests를 대체하여 에 다음을 적용해야합니다.

@Wooble은 자신의 의견에서 기본적으로 nosestdout을 캡처하고 실패한 테스트 만 표시합니다. 당신은 nosetests-s 또는 --nocapture 스위치를 사용하여이 동작을 재정의 할 수 있습니다 @Wooble처럼

$ nosetests --nocapture 

도 그의 의견에, 내가 대신 printlogging 모듈을 사용하는 것이 좋습니다 언급하고있다. 그런 다음 당신은 단지 nosetests 당신이 모듈에서 로그 출력의 표시를 사용하려면, 표시 할 로거의 이름을 쉼표로 구분 된 목록으로 대체 DEBUG-l DEBUG 또는 --debug=DEBUG 스위치를 통과해야합니다

$ nosetests --debug=your-logger-name 
+0

당신은 모두 정확합니다, 코는 실패한 테스트 만 표시합니다. 우리는 기본적으로 nose 명령과 함께 -s -v 옵션을 사용하여 모두를보고했습니다. 이제 우리는 로깅 모듈을 사용하는 방향으로 기울이고 있습니다. 우리 둘 다 도와 줘서 고마워. – user1366786