pytest の使用中に「ImportError: No module names...」というエラーが発生した場合は、次のことを考慮することが重要です特に Linux または Windows システムにおける PATH 構成の潜在的な問題。この特定のケースでは、ユーザーは Mac で easy_install を使用して pytest をインストールし、次のファイル構造を持つプロジェクトをテスト中に問題が発生しました:
repo/ |--app.py |--settings.py |--models.py |--tests/ |--test_app.py
この問題を解決するには、次のアプローチが推奨されます。
Pytest は、「pythonpath」構成設定を介して sys.path の変更を可能にするコア プラグインを導入しました。この簡素化されたソリューションでは、プロジェクトの pyproject.toml または pytest.ini ファイルに次の行を追加します。
# pyproject.toml [tool.pytest.ini_options] pythonpath = [ "." ] # pytest.ini [pytest] pythonpath = .
ルート ディレクトリを基準としたパス エントリを指定することで、そのディレクトリを sys.path に効果的に追加します。インポートの問題を解決します。
古いバージョンの pytest の場合、侵襲性の低いアプローチとして、プロジェクトのルート ディレクトリに「conftest.py」という名前の空のファイルを作成します。
$ touch repo/conftest.py
これにより、pytest は自動的に次の親ディレクトリを追加します。 「conftest.py」を sys.path に追加し、インポートが成功するようにします。
Pytest はテスト収集中に 'conftest' モジュールを検索してカスタムを収集しますフックと固定具。これらのカスタム オブジェクトをインポートするために、pytest は 'conftest.py' の親ディレクトリを sys.path に追加します。
問題を解決するための推奨アプローチpytest でのインポートの問題は、使用しているバージョンによって異なります。 pytest >= 7 の場合は 'pythonpath' 構成が優先されますが、pytest
以上がPytest の「ImportError: No module names...」エラーを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。