2011-12-01 2 views
22

다른 테스트 프레임 워크 (unittest, note, pyunit, ...)의 사용을 쉽게하고 이러한 도구에 대한 테스트 자동 검색과 친숙한 Python 테스트 파일에 대한 최적의 명명 규칙을 찾고 있습니다.Python에서 테스트 파일에 대한 최적의 명명 규칙은 무엇입니까?

도구에 대한 최소한의 구성 만 필요로하는 명확한 리콜 대상을 원합니다.

  • 테스트 디렉토리 이름은 무엇입니까? test 또는 tests?
  • 테스트를 수행 할 위치는 어디입니까? 모듈/testdir 또는 모듈 /../ testdir
  • 밑줄 또는 대시로 파일 이름을 테스트 하시겠습니까? test_0.py 또는 내가 아는

test-0.py, 나는

+3

을하며 "테스트를 넣어"질문에 대해

는 PERSONNALY, 나는 누군가가 코드를 편집 할 때 테스트를 만지지/실행 깜빡하지해야 할 각 패키지의 하위 디렉토리에 테스트를 저장하는 것을 선호 "-"는 파일 이름을 모듈 이름에 매핑하는 규칙을 위반하기 때문에 Python에서 문제를 만듭니다. ** Python 파일 이름의 일부로 유효한 Python 식별자 이외의 다른 것을 사용하지 마십시오. –

답변

12

: 디렉토리 test를 호출하지 마십시오가와 충돌 너무 많은 시간을이 내장 된 test 패키지.

명명 규칙은 PEP 8에 정의되어 있습니다. '명명 규칙'섹션을 참조하십시오. 밑줄은 하이픈보다 낫습니다!

패키지 레이아웃이 좀 더 유연합니다. 나는 다음을하는 경향이있다 :

package 
|-- package 
| |-- __init__.py 
| `-- <etc> 
|-- tests 
| `-- <etc> 
|-- setup.py 
|-- README 
|-- LICENCE 
`-- <etc> 

이것은 테스트를 패키지 자체와 분리하여 유지한다. setup.py를 사용하여 패키지를 설치하면 사람들의 통역사를 깔끔하게 유지할 수있는 소스 만 설치할 수 있습니다. 테스트는 패키지 소스를 얻을 때 필요한 테스트입니다.

파이썬 패키지에 대한 자세한 내용은 The Hitch Hiker's Guide to Packaging을 참조하십시오.

+2

감사! 단 하나의 하위 질문 : 여러 개의 하위 모듈이있는 경우 동일한 디렉토리에서 모든 테스트를 결합해야합니다. 아니면'/ tests/a /'와 같은 하위 디렉토리로 이동해야합니까? – bogdan

+1

솔직히 이쪽으로 갈 수 있습니다. 장고는 제가 언급 한 접근법을 사용합니다. 적어도 장황한 것들은 한 곳에 모아 놓았습니다. 그러나 장고 응용 프로그램을 통해 테스트를 확산하고 많은 사람들이 이런 식으로 너무 확신합니다.나는 한 곳에서 테스트를 통해 (소스 내외부에 흩어져있는) 전체적으로 흩어져 있지만, 어느 쪽이든 당신에게 줄 강력한 인수를 생각할 수 없다. – adamnfish

+3

별도의 디렉토리에 테스트를 유지하기위한 인수는 다음과 같다. 미학에 완전히 의존한다. 코드를 반영하는 디렉토리 구조에 @adamnfish를 별도로 배치하는 것에 동의합니다. 개발하는 동안 항상 특정 테스트를 실행할 수있는 방법을 찾는 것이 더 쉽습니다. 그러나 프로젝트 구조 (모듈/파일 추가 및 제거)를 변경하는 경향이있는 경우 테스트 업데이트를 놓칠 수도 있습니다. 그러나 오류가 표시되므로 알게됩니다! –

관련 문제