2014-11-05 5 views
1

1 년 전에 프로젝트를 개발하면서 python을 배우기 시작했습니다. 그 이후로 프로젝트는 다소 안정적이고 유용한 도구가되었습니다. 이 프로젝트의 배열과 같이 경우 : main.py 파일이 순차적으로 기능의 나머지 부분을 호출대형 파이썬 프로젝트에 단위 테스트 추가하기

main.py 
../functions/func1.py 
../functions/func2.py 
../functions/func3.py 
../functions/func4.py 
... 
../functions/funcN.py 

.

문제는 모든 기능에 대해 단일 단위 테스트를 작성하지 않았기 때문입니다. 하나도 아닙니다. 처음에는 배우기 만 했으므로 결국 테스트에 신경을 쓰지 않았습니다.

이 문제를 해결하고 적절한 단위 테스트를 추가하고 싶습니다. 문제는 프로젝트에 어떤 테스트 방법을 사용해야합니까?

내가 본 많은 다른 방법 described :

는하지만 난 아무 생각도 없어.

+2

기존 코드에 대한 테스트를 추가하지 마십시오. 시간 낭비입니다. 버그를 수정해야 할 때 (테스트를 작성하는 테스트) 또는 새 코드를 추가하기 전에 테스트를 추가하십시오. 이미 사용중인 코드를 수동으로 테스트했습니다. – RemcoGerlich

+0

@RemcoGerlich 여전히 코드 품질을 향상시키는 데 도움이 될 수 있습니다. – simonzack

답변

3

unittest 이제는 unittest2가 이미 파이썬과 가장 표준에 이미 있습니다. 그냥 시작하십시오.

nose을 확장 집합으로 생각하십시오. 이미 unittest에없는 것을 원할 때 사용하십시오. 또한 매우 유명합니다.

doctests 단위 테스트를 문서 주석에 넣으려는 시도가 너무 맘에 들지만 원하는 경우 사용하십시오.

mock이 인터페이스와 상호 작용 할 때 사용합니다 단지 테스트 패러다임/객체는 다른 파이썬 환경에서

tox 실행 테스트 사소한 없습니다.

또한 travis/jenkins과 같은 통합 도구를 사용하면 tox 또는 단위 테스트 세트를 자동으로 실행할 수 있으므로 여러 사용자 프로젝트에 자주 사용되므로 모든 사람이 각 커밋에 대해 테스트 결과를 볼 수 있습니다.

+2

doctests의 요점은 docstring에 예제가 있으면 (자주 도움이 됨), 테스트를 거쳐 최신 상태를 유지해야한다는 것입니다. – RemcoGerlich

+0

@RemcoGerlich 예, 저는 종종 연구 중심의 라이브러리에서이를 볼 수 있습니다. numpy/scipy, 기본 객체가 단순 할 때 더 좋습니다. – simonzack

관련 문제