파이썬 패키지 및 테스트와 관련된 문제가 있습니다. wx python을 사용하는 응용 프로그램을 작성 중이며 gui 파트에 대한 다음 기본 폴더/패키지 구조가 있습니다.파이썬 및 GUI 테스트의 내부 패키지 참조
import guiapp.utilviews.logpane
폴더/패키지 레이아웃 :
mainapp
- main.py
guiapp
- __init__.py
utilviews
- __init__.py
- logpane.py
- other stuff...
mainview
- __init__.py
- mainframe.py
- other stuff here...
other views...
mainframe.py 창 용이
mainframe.py 절대적인 가져 오기를 사용하는
logpane.py 패널에 대한 의존성을 갖는다
그러나 응용 프로그램의 gui 부분에 대해서는 단위 테스트 외에 문제가 없는데 각 뷰에 대해 작은 "테스트"/ 예제가 필요합니다. 즉, logpane, 나는 그 레이아웃을 테스트보기를 보여주는 베어 뼈 응용 프로그램을 미사일합니다 작은 실행 가능한 예제를 가지고 싶습니다되어 확인 등이다 내가 시작하는 방법은 내가
if __name__ == "__main__":
# create some small window and a wx app
# instanciate the panel and launch the app
pass
있다고했다
은 패널/뷰 자체의 실제 구현 파일에 있습니다. 이것은 로그 판에 대한 경이로움을 나타냈다. 나는 파일을 독립 실행 형으로 실행하여보기를보고 함께 보관할 수 있습니다.
그러나 전략은 logpane.py에 의존 이후 mainframe.py에 대한 고장 물론
확인할 수 없습니다. 이것은 현재 메인 모듈 이이기 때문에 mainframe.py가 mainview.py가 utilviews 패키지에 도달 할 수있는 유일한 방법은 메인/실행 모듈이 트리에있을 때입니다.이러한 유형의 테스트는 어떻게 구성합니까? 단위 테스트의 경우 코를 사용합니다. 좋은데, 코가 mainapp 폴더마다 실행되기 때문에 문제가 발생합니다 (모든 intrapackage 참조가 작동합니다). 그러나 이러한 테스트는 소형 독립 실행 형 프로그램과 같습니다. 나는 단순히 이러한 파이썬 파일들로 mainapp 폴더를 어지럽히 지 못한다 (많은 파일들이있을 것이다). 이 일을 성취 할 수있는 다른 방법이 있습니까?
모든 입력 값은 중요합니다.
감사합니다, 리 카드
감사합니다. 이것은 해결책입니다. 그것은 다른 개발자가 SVN에서 프로젝트를 체크 아웃 한 다음 테스트를 실행할 수 있기를 원하기 때문에 약간의 번거 로움을 추가합니다. 어쩌면 나는 CWD에서 위쪽으로 traves하고 mainapp 폴더에 도달 할 때 sys.path를 통해 경로를 programmatically()에 추가하는 if __name__ == "__main__"절에 논리를 추가 할 수 있습니다. 그렇게하면 작업 복사본을 어디서나 가질 수 있습니다. 나는 그것을 시도 할 것이다! 감사! – Rickard
예,'sys.path'도 수정 합니다만, 나는 꽤 해킹 된 것으로 생각합니다. 테스트를'test /'디렉토리에 결합하면 테스트 실행을위한 작은 쉘 스크립트를 제공 할 수 있습니다. 그러면 이전에'PYTHONPATH'가 설정됩니다. – Frank