2017-01-12 3 views
2

필자는 CI 테스트 머신에서 사용할 수없는 타사 패키지에 의존하는 Python 모듈을 작성 했으므로 import dependency 문을 지나갈 수 없기 때문에 모듈을 원격으로 테스트 할 수 없습니다.어떻게 파이썬에서 단위 테스트에 대한 누락 된 종속성을 속일 수 있습니까?

CI 호스트에 의존성 (통증처럼 보임)을 설치할 수있는 방법이 없다고 가정 할 때, 누락 된 타사 패키지를 위조/모의/시도하는 가장 쉬운 방법은 무엇입니까? 암호?

종속성에 의해 제공되는 단일 클래스 만 사용하므로, 전체 모듈 대신에 그렇게 할 수있는 방법이 있다면 기꺼이 그 객체를 모의합니다.

답변

5

.py 파일은 모듈 이름과 동일한 파일 이름으로 같은 폴더에 만들 수 있으므로 종속성 대신 가져옵니다.

종속성을 사용할 수없는 경우에만 대체 솔루션으로 사용하고자하는 경우 : 설치가 더 복잡하고 모듈 종속성으로 다른 모듈에 사용되는 경우

try: 
    import dependency 
except ImportError: 
    import fakedependency as dependency 

, 그것을 조롱 :

import sys, fakedependency 
sys.modules['dependency'] = fakedependency 

원하는 경우 대체 솔루션과 결합 할 수 있습니다.

+0

'sys.modules'의 사용은 정확하게 내가 필요한 것입니다. 감사합니다. –