2011-09-26 2 views
3

시험판을 실행하여 디렉토리 내의 모든 테스트를 실행하려면 어떻게해야합니까? 내가 개별적으로 각 파일에 대해 시험을 실행하면 내 모든 단위 테스트는 통과하지만 테스트 디렉토리에 뭔가 같은 ...디렉토리의 모든 테스트에서 트위스트 트라이얼을 실행하려면 어떻게해야합니까?

trial test/ 

를하려고하면, 그것은 나에게 하나 "PASSED", 다음과 같은 메시지를 제공합니다 ...

UserWarning: (for module __init__) not in path importer cache (PEP 302 violation 
    - check your local configuration). 

실제로 디렉토리 내에서 모든 테스트를 실행하지 마십시오.

답변

5

우선 : 최상위 단위 테스트 패키지 test을 호출 할 수 없습니다. 이것이 파이썬의 단위 테스트의 이름입니다. 따라서 설치된 구성에서 테스트를 실행할 수 없으며 파이썬이 어떻게 설정되었는지에 따라 파이썬 자체의 테스트를 직접 가져올 수도 있습니다.

두 번째 : sys.path은 방대하고 미묘한 신비입니다.

trial은 빠른 시작 해킹으로 파일 및 디렉토리를 실행하는 것을 지원하지만 경로 이름을 사용하는 경우에는 완전히 수정할 수 없습니다. 올바른 일은 모듈 (또는 패키지) 이름을 파이썬 모듈로 가져 와서 검사 할 수있는 시험을 통과하는 것입니다. 프로젝트의 디렉토리 내에서 테스트를 실행하지 않는, 즉

PYTHONPATH=$HOME/Projects/MyProject (cd /tmp; trial myproject.test) 

:

~/Projects/MyProject/ 
~/Projects/MyProject/myproject/ 
~/Projects/MyProject/myproject/__init__.py 
~/Projects/MyProject/myproject/stuff.py 
~/Projects/MyProject/myproject/test/ 
~/Projects/MyProject/myproject/test/__init__.py 
~/Projects/MyProject/myproject/test/test_stuff.py 

는 다음과 같이 테스트를 실행해야합니다

그래서 디렉토리 구조처럼 보이는 경우 ; 이렇게하면 소스 코드 전체에 _trial_temp 디렉토리가 덤프되고 "내 코드를로드하는 위치"와 "현재 디렉토리"가 혼동되고 나중에 일반적으로 뒤죽박질하기가 어려울 수있는 다양한 것들이 혼란스러워집니다. 고유 명에, 일부 임시 위치에서 trial을 실행 - 그리고 당신의 ~/.bashrc로하거나 투기 쓰레기 - Combinator, setup.py develop, virtualenv :

그래서, 경로 관리 당신의 선택의 도구를 사용하여 PYTHONPATHPATH을 설정 최상위 Python 패키지를 사용하면 모든 것이 올바르게 작동합니다.

+1

최근이 문제로 고민하고 있었고 모듈 이름이'test_'로 시작하는 경우에만 재귀 테스트 검색이 작동한다고 덧붙이고 싶었습니다. –

관련 문제