私はPythonにかなり慣れていません。現在、私は PyCharm を試していますが、テストを実行するときに説明できない奇妙な動作に遭遇しています。
私が現在取り組んでいるプロジェクトは、PythonPlayground というフォルダーにあります。このフォルダには、いくつかのサブディレクトリが含まれています。すべてのフォルダーには、init .py ファイルが含まれています。一部のフォルダーには、nostest テストが含まれています。
プロジェクト ディレクトリ内のコマンド ラインから、nosetest ランナーを使用してテストを実行する場合、すべてのローカル インポートの前に「PythonPlayground」を配置する必要があります。たとえば、「モデル」というモジュールを「ui」フォルダーにインポートする場合、次のようにインポートする必要があります。
from PythonPlayground.ui.model import *
しかし、Pycharm 内からテストを実行するときは、先頭の「PythonPlayground」を再度削除する必要があります。そうしないと、テストが機能しません。このような:
ui.modelインポートから *
私はモック フレームワークも試していますが、何らかの理由で、このフレームワークには常にモジュールの完全な名前 (「PythonPlayground」を含む) が必要です。コマンドラインからテストを実行するか、PyCharm 内からテストを実行するかは問題ではありません。
patch('PythonPlayground.ui.models.User') をモックとして使用:
誰かが私に動作の違いを説明できますか? そして、正しい行動は何ですか?