pytestプラグインを作成しています。このプラグインは、特定の環境のセット内で動作するように設計されたソフトウェアをテストする必要があります。pytestでモジュールインポートを模擬しました
私が書いているソフトウェアは、より大きなフレームワークの中で実行されています。これは、特定のPythonモジュールを、フレームワーク内でPythonソフトウェアを実行している場合に限り使用できるようにします。
私のソフトウェアをテストするためには、私はモジュール全体(実際にはかなりの数)を "模擬"または偽造する必要があります。私は同様の見た目の何らかの形でその機能を実装する必要がありますが、私の疑問はpy.testプラグインを使用して、この偽のPythonモジュールを私のソフトウェアのコードでどのように利用できるようにするべきかということです。例えば
、のは、私は私のソースファイルのいずれかで、次のコードを持っていると仮定してみましょう:fwlib
モジュールは唯一私がから私のソフトウェアを実行するフレームワークによって利用可能にされ、しかし
import fwlib
def fw_sum(a, b):
return fwlib.sum(a, b)
、と私はテストすることはできませんその中。
fwlib
という名前のモジュールが既にsys.modules
に定義されていることをpytestプラグインから確認するにはどうすればよいですか?確かに、自分でfwlib.sum
を実装する必要があります。私はちょうどそれを行う方法についての推奨事項を探しています。
これは素晴らしいです、ありがとう!あなたは最後の声明を明確にしてください、それが配布に含まれる必要はないと思いますか? – NirIzr
おそらく '。/ tests /'サブディレクトリがあります。これは、配布を作成するときに 'setup.py'ファイルでパッケージ化されていません。テスト実行中にインポートできる '。/ tests/mocks/fwlib.py'などを作成することができますが、ライブラリと一緒に配布されません。 – wim
ああ、そうです。私は他の答えが来る(少しはありそうもない)ためにちょっと待って、すぐに受け入れます。再度、感謝します! – NirIzr