20

最近フレームワークに切り替えたプロジェクトに取り組んでいます。私は、デバッガーを使用できるように、Eclipse からテストを呼び出すことに慣れていました (たとえば、ブレークポイントを配置して、テストの失敗がどのように発生するかを分析します)。テストを実行する唯一の方法はコマンド ライン ブラックボックスを使用することであるため、これはもはや不可能です。pytest unittest

pytestIDE からドロップアウトせざるを得ないように、Python 内から使用する方法はありますか? もちろん、テストは別のプロセスで実行するべきではありません。

4

7 に答える 7

33

私は今、私自身の質問に答えることができると思います.それは非常に簡単です:

import pytest

pytest.main(args)

これは、セクション「Python コードからの pytest の呼び出し」に記載されています。次に、このモジュールを実行したり、統合デバッガーで開始したりできます。

argsはコマンドライン引数のリストです。たとえば、特定のテストのみを実行するには、次のようなものを使用できます。

args_str = "-k test_myfavorite"
args = args_str.split(" ")
pytest.main(args)
于 2010-07-27T21:22:50.253 に答える
11

現在(py.testバージョン2.0以降)、誰かがこれを行うこともできるようです:

import pytest

pytest.main('-x {0}'.format(argument))

# Or
# pytest.main(['-x', 'argument'])

参照

于 2015-09-25T13:30:15.747 に答える
7

これは現在 pytest でサポートされており、ドキュメントで適切に説明されています。

Python コードから pytest を直接呼び出すことができます。

import pytest
pytest.main()

これは、コマンド ラインから「pytest」を呼び出すかのように機能します。SystemExit は発生しませんが、代わりに終了コードを返します。オプションと引数を渡すことができます:

pytest.main(["-x", "mytestdir"])
于 2017-01-12T15:02:43.007 に答える
2

たぶん、pycharmを試してみてください。py.testと直接統合されており(私は仕事で使用しています)、デバッガーは完全に実行されます。

于 2012-08-31T01:56:36.557 に答える
1

私はEclipseを試していませんが、関連する質問で提案されているように、--pdbコマンドラインオプションをpy.test. そのようにEclipseを構成することは可能かもしれません。

ただし、標準import pdb;pdb.set_trace()を呼び出してもデバッガーは直接呼び出されません。最初にエラーが発生し、デバッガがアクティブになります。これにより、動作が異なる場合があります。

于 2010-07-27T12:23:02.063 に答える
0

py.test --pdbデバッガーが必要なだけで IDE が不要な場合は、実行できます。

于 2018-02-12T22:40:19.930 に答える