2013-07-31 4 views
0

소스 코드를 테스트 코드와 별도로 보관하고 싶습니다.유닛 테스트 코드에서 패키지 가져 오기

my_package/ 
    module1.py 
    module2.py 
tests/ 
    units/ 
    test_a.py 
    test_b.py 
    perf_tests.py 

어떻게해야 test_a.py 수입 my_package : 그래서, 난 내 프로젝트는 다음과 같이 정리했다?

참고 :이 (SO 포함)을 인터넷 검색 및 답변에 만족하지 오전했습니다

  • 내가 개발에서 실행하려는 때문에, setup.py를 사용하지 않는다; 이 모든
  • 후 나는 심볼릭 링크 또는 내가 sys.path.append('../')sys.path.append(os.path.realpath('../'))을 시도했습니다
  • 다른 해킹을 사용하지 않으려는 테스트 용입니다. 둘 다 ImportError: No module named my_package이됩니다. 아마도 유사 할 수 있습니다 PYTHONPATH - 구문은 무엇입니까?
  • 나는 올바른 파일
+0

"소스 코드를 어떻게로드해야합니까?" 뭔가 가져 오기를 말하는거야? 어떤 모듈에서 어떤 모듈을 가져 오시겠습니까? ... "적절한 포함"이란 무엇입니까? ... 파이썬에는 "includes"가 없습니다. – Gerrat

+1

PYTHONPATH 환경 변수를 사용하지 않는 이유는 무엇입니까? 그게 뭔지 그게 뭔지 ... –

+0

@Gerrat - 고마워, 당신의 요점을 해결하기 위해 질문을 썼다. – SRobertJames

답변

0

먼저 파이썬 유효한 모듈로이 폴더를 인식 할 수 있도록하기 위해 폴더 my_package 내부 __init__.py 파일을 포함 할 필요를 찾을 수있는 적절한 import 명령문을 작성하고 싶어. 예를 들어 빈 __init__.py 파일을 한 줄로 만들 수 있습니다 (예 : pass).

import os 
bkp = os.getcwd() 
os.chdir(r'..\..') 
import my_package 
os.chdir(bkp) 

또는 PYTHONPATH 또는 sys.path.append()와 다른 옵션을 사용

그런 다음 test_a.py에서 같은 것을 할 수 있습니다.