PyCharm IDEで、doctestを使用して関数/メソッドを右クリックすると、右クリックメニューにオプションが表示される場合があります: "Run 'Doctest my_function_name'"そして時には右代わりにメニューをクリックすると、ファイル全体を実行するオプションのみが表示されます(doctestとしてではありません)。
「doctestを実行」オプションを提供するタイミングと提供しないタイミングを決定するものは何ですか?それを何らかの方法で強制する方法はありますか?
PyCharm
でのモジュール(またはその中のテスト)の実行は、 Run Configuration を介して行われます。モジュールを右クリックすると、PyCharm
はそのモジュールの既存のRun Configuration
を検索します。構成が見つかった場合(以前の実行、またはConfiguration
の手動作成が原因である可能性があります)、PyCharm
はその構成の実行のみを提案します。
たとえば、module.py
の構成がdoctests
を実行するために作成された場合、これはmodule.py
を右クリックしたときに表示されるオプションです。ただし、構成が見つからない場合、PyCharm
は、モジュールのコードに応じて、さまざまなオプションでモジュールを実行することを提案します(定期的に実行するか、doctests
/unittests
を実行します)。 。オプションが選択されると、PyCharm
はそれぞれの一時的なRun Configuration
を暗黙的に作成します。これ以降、モジュールを右クリックすると、そのモジュール用に作成された構成のみが表示されます。
重要な補足:PyCharmは最大6個の一時ファイルを保存します(つまり、モジュールの実行によって作成されたConfigurations
)Run Configurations
- "Python"の3つまり、スクリプト、および「Python Tests」の3つです。つまり、moduleA.py
、moduleB.py
、moduleC.py
、次にmoduleD.py
を実行すると、PyCharmの一時的なConfigurations
はmoduleB.py
、 moduleC.py
、およびmoduleD.py
。 moduleA.py
の構成は、明示的に保存しない限り、自動的に削除されます。
この動作は、次のように再現できます。
PyCharm
で、新しいPython module: "temp"を作成します2.以下をモジュールに追加します:
"""
>>> print 3.14
3.14
"""
if __name__ == '__main__':
pass
実行->設定の編集->モジュールの現在の設定(通常は強調表示されています)を見つけます->「マイナス」ボタン(左上隅)をクリックします->「適用」をクリックします->「OK」をクリックします。ステップ3に戻ります。
(PyCharm
5.0および4.5で複製)
Run Configuration
が見つからない場合、PyCharmはモジュールを可能な限りの方法で(スクリプト、doctest、またはユニットテストとして)実行することを提案しますRun Configuration
が見つかった場合、PyCharmはConfiguration
のみを提案します。Run Configuration
を見つけて削除するか、または新しいファイルまたはメソッド/関数を希望どおりに実行するもの。設定を削除したくない場合は、実行のショートカットキーを押すこともできます。プログラムを再開して(F9を押して)、選択肢の完全なリストをポップアップします。
上記の場合しないでうまくいきます-モジュールがnotという名前であることを確認してくださいdoctest
;競合が発生するため、例外が発生します。