2011-08-15 2 views
12

커맨드 라인에서 코 테스트를 실행하는 대신 로컬 테스트 인스턴스에 대한 연결을 포함하여 모든 테스트에 대해 몇 가지 사항을 설정하는 테스트 러너를 사용합니다. MongoDB. 코에 대한 문서는 명령 행 또는 홈 디렉토리에있는 구성 파일을 통해 옵션을 전달하는 방법만을 나타냅니다. 스크립트를 사용하여 테스트를 실행할 때 --with-xunit와 같은 옵션을 전달할 수 있습니까? 이처럼Python 테스트 스크립트에서 옵션을 코에 전달

답변

8

:

import nose 

argv = ['fake', '--with-xunit'] 
nose.main(argv=argv) 

은 "가짜"인수가 DBW의 대답에 설명 된대로 실행 파일 이름에 서 추가해야합니다.

+0

이 시도했지만 보고서가 생성되지 않습니다. –

+0

@Matt : 정말입니까? 왜냐하면 나는 하나의 프로젝트에서 동일한 코드 스 니펫을 사용하고 있으며 이제는'xunit' 보고서를 생성하기 위해 변경했으며'nosetests.xml'에서 성공적으로 생성되었습니다! 어쩌면 내가 뭔가를 놓치고있어 ... – mouad

+0

그래, 먼저 시도하고 보고서가 생성되지 않았습니다. 커맨드 라인으로 시도하고 하나 있어요. 죄송합니다 : -/ –

16

Nose가 첫 번째 인수로 부적절한 것을 수행하므로 구문 분석되지 않습니다. 코 랩퍼는 다음과 같이 처리합니다.

import nose 
import sys 

argv = sys.argv[:] 
argv.insert(1, "--with-xunit") 
nose.main(argv=argv) 

보너스로 프로그램의 클라이언트가 Nose 인수를 사용하여 동작을 제어 할 수 있습니다.

+0

그것은 작동합니다. 고맙습니다. – KobeJohn

+1

나는 이것이 더 정확한 대답이라고 생각한다. Nose가 첫 번째 논쟁으로 비열 해한다는 점은 매우 중요한 포인트입니다. – munk

+5

코가 부적절하지는 않습니다. 요점은'argv'리스트는 항상 실행 파일의 이름으로 시작한다는 것입니다. 따라서,'argv = [ '--with-xunit']'라고하면, 실행 파일의 이름을'--with-xunit'으로 설정하고 인자를 넘겨주지 않습니다. 이것을 고치려면,'argv = [ 'fake', '--with-xunit']' – Timur

관련 문제