파이썬, 유니테스트: 전달할 수 있는 방법이 명령줄 옵션을 앱
I have a 모듈에서는 유니테스트 임포트합니다 계시한하나님께 있는 일부 티스트카지스. 싶다 일부 수락하려면 명령줄이 옵션 (예를 들어 데이터 파일 이름 아래) 하지만 나는 메시지를 전달할 때 얻을 수 있는 옵션이 안 recognized" " 시도하시겠습니까 옵션이 있습니다. -;). 이것은 유니테스트 + 옵션 제공 할 수 있는 앱 (참고: # 39 m, i& 롭스파스 사용하여 처리할 수 있는 옵션)? 감사합니다.
$ python test_app_data.py -i data_1.txt
option -i not recognized
=
후속: 이 오류는 구축 솔루션을 제안했다.
import cfg_master #has the optparse option-handling code
...
if __name__ == '__main__':
#add you app's options here...
options_tpl = ('-i', '--in_dir', '-o', '--out_dir')
del_lst = []
for i,option in enumerate(sys.argv):
if option in options_tpl:
del_lst.append(i)
del_lst.append(i+1)
del_lst.reverse()
for i in del_lst:
del sys.argv[i]
unittest.main()
45
5
39 라고 it& Alex& 기반으로, s, s 사실 매우 쉽습니다 # 39 를 사용하여 ['아리파스'] (http://docs.python.org/library/argparse.html):
나는 모든 플래그, t 테스트되었습니다 haven& # 39 로 볼 수 있지만, 테스트 유니테스트 전달할 수 있습니다 슬래시나 작동합니까 방관하겠나 반군지역 이름을 작동합니다, 예:
Foo '와' 와 '런입니다 미치스트 다타.t스트'.
39, & # 39, "만약 내 name = main& you& # 39 섹션에 보이지 않고, re: '우리', '다음' 델 시스콜라리프 you& # 39 할 수있을 롭스파스 전에 '코드' [1:] '전달하십시오 유니테스트 통제할 수 있도록 rmw 코드 doesn& # 39, t # 39, ve you& again 너회의 명령줄 옵션을 해석하기 시도하시겠습니까 저들이요 처리할 때 이미 (It& # 39 에 좀 더 열심히 할 몇 가지 자신만의 and 또한 전달하십시오 일부 아래로 '' 이 이뤄질 수 있을 경우 유니테스트 표시되어도 같은 복잡한 요구).
39 생각해봤죠 I& 공유하지는; d - 내 solution for 추가에는 디버그입니다 전환하십시오 테스트하려면 제어입니다 로거가:
그럼 내가 '확장' 유니테스트스테스트케이스 로깅하기 추가할 수 있습니다.
지금 내가 할 수 있지만, 내 선반가공 메시지를 on / off 를 사용하여 일반 회귀 테스트 디버그로 it gets 에서 무시됨.
내가 사용하는 소규모 독립 어플리케이션, 초기 센티넬 옵션 (t) 를 호출하기 전에 아리파스 호츨 유니테스트롬맹 (). 아르구멍파서 ()
인수 및 옵션, 그들을 유니테스테스 실행하십시오 안됩니다 시행하십시오 만들 때 다른 조건 하에 예측 가능한 적게 실행하십시오 이렇게. 왜 서로 다른 데이터를 알아낼 합니다 실행하는 데 필요한 충분한 테스트 suite 를 포함하는 모든 데이터세트를 저회가 점심시간요 완료하십시오 방전시키십시오 않고 다르게 실행하십시오 때마다.