187

Pythonコードの単体テストを書き始めたいのですが、py.testフレームワークは、Pythonにバンドルされている単体テストよりも優れているようです。そこで、プロジェクトに「tests」ディレクトリを追加し、それにtest_sample.pyを追加しました。ここで、「tests」ディレクトリ内のすべてのテストを実行するようにPyCharmを構成したいと思います。

PyCharmはテストランナーでpy.testをサポートしていると言われています。テストを実行するための実行/デバッグ構成を作成できるはずであり、PyCharmにはpy.test専用の「構成の作成」ダイアログボックスがあると言われています。しかし、それはこの主題に関する彼らの文書の完全な範囲であり、私はこの疑わしいダイアログボックスをどこにも見つけることができません。

プロジェクトツールウィンドウでディレクトリを右クリックすると、[ <名前>の作成]メニュー項目が表示されるはずですが、[作成]で始まるメニュー項目は[実行構成の作成]のみです。さて、おそらくドキュメントが間違っているだけで、「CreateRunConfiguration」は有望に聞こえます。残念ながら、そのサブメニューの2つの項目は、「Unittests in C:\ mypath ...」と「DoctestsinC:\ mypath ...」だけで、どちらも当てはまりません。私はunittestもdoctestも使用していません。py.testのメニュー項目はありません。

test_sample.pyを開いてエディターウィンドウを右クリックすると、約束された「Create<name>」メニュー項目が表示されます。「Create'Unittestsin test_sa ...' ...」に続いて、「Run 'Test_saのユニットテスト...'"および"デバッグ'test_saのユニットテスト...'"。繰り返しになりますが、これはすべてユニットテストフレームワークに固有のものです。py.testには何もありません。

「unittest」というメニュー項目を試してみると、「名前」、「タイプ」のオプションを含むダイアログボックス、「フォルダ」と「パターン」、「スクリプト」と「クラス」を含む「テスト」グループボックスが表示されます。 「」や「関数」など。これは、Python単体テストの構成を追加するためのダイアログとして文書化されているものとまったく同じように聞こえますが、表示されるはずの「名前」、「実行するテスト」、「キーワード」オプションとは異なります。 py.testダイアログの構成で。ダイアログ内には、追加するテストフレームワークを切り替えるものは何もありません。

私はPython3.1.3とpytest2.0.3を搭載したWindowsでPyCharm1.5.2を使用しています。コマンドラインからテストを正常に実行できるpy.testため、pytestが正しくインストールされていないような単純なものではありません。

py.testテストを実行するようにPyCharmを設定するにはどうすればよいですか?

4

13 に答える 13

264

File|に移動してください Settings| Tools| Python Integrated Toolsデフォルトのテストランナーをpy.testに変更します。次に、単体テストの代わりにテストを作成するためのpy.testオプションを取得します。

于 2011-06-18T16:23:50.037 に答える
62

PyCharm 2017.3

  1. Preference -> Tools -> Python integrated Tools-として選択py.testDefault test runnerます。
  2. Djangoを使用する場合Preference -> Languages&Frameworks -> Django-チェックマークをオンに設定しますDo not use Django Test runner
  3. から既存のすべてのテスト構成をクリアしRun/Debug configurationます。そうしないと、テストはそれらの古い構成で実行されます。
  4. いくつかのデフォルトの追加引数を設定するには、py.testのデフォルト構成を更新します。Run/Debug Configuration -> Defaults -> Python tests -> py.test -> Additional Arguments
于 2018-01-03T09:38:03.857 に答える
20

ツールバーの「実行/デバッグ構成」項目を使用する必要があると思います。それをクリックして[構成の編集]をクリックします(または、メニュー項目[実行]-> [構成の編集]を使用します)。左側のペインの「デフォルト」セクションには、「py.test」項目があります。これはあなたが望むものだと思います。

また、マニュアルがこのUIと一致していないこともわかりました。私が問題を正しく理解し、それが役立つことを願っています。

于 2011-06-18T15:58:01.833 に答える
18

これが私がpytest 3.7.2(pip経由でインストールされた)とpycharmsでそれを動作させる方法です2017.3

  1. に移動edit configurations

  1. 新しい実行構成を追加して、py.test

  1. targetrun configの詳細で、 =pythonと以下の名前のないフィールドをに設定する必要がありますtests。これはテストフォルダの名前のようです。確かにタフではありません。-sまた、テストをデバッグする場合にコンソールが正しく動作するように、引数をお勧めします。引数がないと、pytestは出力をキャプチャし、デバッグコンソールをバグのあるものにします。

  1. 私のテストフォルダはそのように見えます。これは私のプロジェクトのルートのすぐ下にあります(my_project/tests)。

  1. 私のfoobar_test.pyファイル:(インポートは必要ありません):
def test_foobar():
    print( "hello pytest")
    Trueをアサート
  1. 通常の実行コマンドで実行します

于 2018-09-03T16:20:53.940 に答える
11

pycharm 2019.2では、これを行うだけですべてのテストを実行できます:

  1. 実行>構成の編集>pytestの追加
  2. 次のスクリーンショットに示すようにオプションを設定します 構成のスクリーンショット
  3. デバッグをクリックします(または、たとえばホットキーShift + Alt + F9を使用してpytestを実行します)

pytestのpycharmへのより高度な統合については、 https: //www.jetbrains.com/help/pycharm/pytest.htmlを参照してください。

于 2019-12-18T11:28:53.410 に答える
6

確かに文書化されていません。デフォルトから新しい構成を追加すると、「/ Applications /PyCharmCE.app/Contents/helpers/pycharm/pytestrunner.py」スクリプトを実行する領域になります。文書化されておらず、コマンドライン引数に関する独自のアイデアがあります。

あなたはできる:

  1. いろいろ試して、スクリプトを逆にして、どういうわけかpy.testに引数を受け入れさせることができるかどうかを確認してください。それはうまくいくかもしれません。それは私にとって最初の30分ではありませんでした。
  2. コンソールから「py.test*.py」を実行するだけです。

奇妙なことに、JetBrainsは独自のページでGoogleアルゴリズムを爆撃するのに優れた仕事をしているので、議論を見つけるのは難しいでしょう。

于 2016-04-30T19:15:55.470 に答える
3

同じ質問に答えて解決策を見つけたときにこのスレッドを見つけてくださいpycharmバージョン:2017.1.2「設定」->「ツール」->「Python統合ツール」に移動し、右側のパネルからデフォルトのテストランナーをpy.testとして設定します私の問題を解決する

于 2017-06-15T15:42:10.673 に答える
2

2018.2を使用しています

[実行]->[構成の編集...]を実行します。次に、モーダルダイアログの左上にある[+]をクリックします。「pythontests」->py.testを選択し、「Alltestwithpy.test」のような名前を付けます。

Target:module nameを選択し、テストがあるモジュール(つまり、「tests」)または、テストがコードと混在している場合はすべてのコードがあるモジュールに配置します。これは私をつまずかせました。

Pythonインタープリターを設定しました。

作業ディレクトリをプロジェクトディレクトリに設定しました。

于 2018-08-01T14:15:01.427 に答える
1

プロジェクトでPytestを有効にする

  1. 設定/設定を開きます| ツール| テストフレームワークの選択で説明されている Python統合ツール設定ダイアログ。
  2. [デフォルトのテストランナー]フィールドで、[ pytest]を選択します。
  3. [OK]をクリックして設定を保存します。

ここに画像の説明を入力してください

于 2019-12-05T21:55:41.620 に答える
1

設定ウィンドウを開きます(Macではコマンドキー+ "、"):

Python設定リンク

1.ツール

2.Python統合ツール

3.デフォルトのテストランナー

pythonデフォルトのテストランナー

于 2020-08-23T10:09:15.633 に答える
0

py.testのpipインストールとSpecsアドイン(オプション--spec)の使用(素敵なテスト要約言語のようなRspecの場合)を含む特別なConda pythonセットアップで、私はしなければなりませんでした。

1.デフォルトのpy.testを編集してoption=--specを含めます。これは、プラグインを使用することを意味します:https ://github.com/pchomik/pytest-spec

2. py.testを使用して、新しいテスト構成を作成します。pythonインタープリターを変更して、選択したインタープリター〜/ anaconda / envs /を使用します(例:私の名前にはpy27)。

3.「unittests」テスト構成を削除します。

4.これで、デフォルトのテスト構成はpy.testになり、素敵なRspecスタイルの出力が得られます。大好きです!みんなありがとう!

実行/デバッグ構成に関するpsJetbrainsのドキュメントはここにあります:https ://www.jetbrains.com/help/pycharm/2016.1/run-debug-configuration-py-test.html?search = py.test

于 2016-08-23T16:28:43.043 に答える
0

2018.3では、私がpytestを使用していることを自動的に検出するように見えます。これは素晴らしいことですが、それでもプロジェクトのトップレベルから実行することはできません。ディレクトリpytestごとに個別に実行する必要がありました。tests

ただし、構成の1つを選択し、それを手動で編集してプロジェクトのルートで実行できること、およびこれが機能することがわかりました。[構成]ドロップダウンで手動で選択する必要があります。プロジェクトペインでルートフォルダーを右クリックできません。しかし、少なくとも、すべてのテストを一度に実行することができます。

于 2019-03-14T18:24:42.047 に答える
0

PyCharmのドキュメントがあります:実行/デバッグ構成:SEP2020の時点で利用可能なpytest。

ここに画像の説明を入力してください

于 2021-03-03T22:39:01.023 に答える