2017-01-12 5 views
2

私はCIテストマシンでは利用できないサードパーティのパッケージに依存するPythonモジュールを作成していますので、import dependencyステートメントを通過できないため、モジュールをリモートでテストできません。Pythonでの単体テストの依存関係を偽造する方法を教えてください。

CIホストに依存性(痛みのように思える)を手動でインストールすることはできないと仮定した場合、偽造/偽装/紛失したサードパーティ製のパッケージをテストするための最も簡単な方法は何ですか?コード?

私は、依存関係によって提供される単一のクラスを使用しているだけなので、モジュール全体ではなく、そのオブジェクトを模倣するだけの方法があれば、喜んでそのオブジェクトを模擬します。

答えて

5

.pyファイルは、モジュール名と同じファイル名で同じフォルダに作成することができます。そのため、依存関係の代わりにインポートされます。

あなたは依存関係が利用できない場合にのみ、代替ソリューションとして、それを使用したい場合:

try: 
    import dependency 
except ImportError: 
    import fakedependency as dependency 

セットアップはより複雑で、モジュールが依存関係として、他のモジュールで使用されている場合、それを嘲笑:

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

必要に応じてこれをフォールバックソリューションと組み合わせることができます。

+0

'sys.modules'の使用は私が必要としていたものです。ありがとうございます。 –

関連する問題