PyDev ( with Aptana ) を使用して Python Pylons アプリを作成およびデバッグしていますが、デバッガーでテストを実行したいと考えています。
PyDev を介してノーズテストを起動し、ブレークポイントで停止することは可能ですか?
これが、Eclipse Pydevを使用してnosetestsを実行するために私が行うことです(これがお役に立てば幸いです)。
まず、Pythonスクリプトを作成し、パッケージディレクトリのルートに配置します。
--Package
|
| -- runtest.py
|
| -- ... (others modules)
そしてruntest.pyに私は入れました:
import nose
nose.main()
次に、メニューの[実行]-> [構成の実行]に移動し、 Pydev Djangoの新しい構成を作成します。パッケージを選択し、メインモジュールにruntest.pyを配置します。次に、同じウィジェットの[引数]タブに移動し、[プログラム]を配置します。引数は私のプロジェクトへのパスとスクリプト例に渡す別の引数です。
/home/me/projects/src --with-doctest # Run doctests too
[適用]をクリックした後、この構成を実行できます。
デバッグの場合、この構成をデバッグモードで実行し、コード内の任意の場所にブレークポイントを配置できます。また、すばらしいデバッグウィジェットを使用して、いくつかのアクションを実行できます。
注意:残念ながら、doctestの場合、doctestの行にブレークポイントを設定することはできないと思いますが、doctestによって呼び出される関数の定義にブレークポイントを設定することで、デバッグモードを使用できます。 。
つまり、ブレークポイントとステッピングは機能していませんが、PyDev でテストを実行し、結果を PyUnit ビューに表示します。
単体テストを実行するときは、テスト ランナーをオーバーライドして、実行構成の [引数] タブで "nose" とコマンド ライン引数 "--with-pylons=path/to/test.ini" を使用する必要があります。たとえば、「--with-pylons=../../test.ini」に設定します。残念ながら、実行するテストごとにこれを個別に設定する必要があります。そこに変数またはプロジェクト パスを配置する方法が見つかりませんでした。
また、残念ながら、ブレークポイントを機能させることができませんでした。http://pydev.blogspot.ca/2007/06/why-cant-pydev-debugger-work-with.htmlとそのコメントで推奨されているようにパッチを適用しようとしましたが、役に立ちませんでした。YMMV。
DecoratorTools-1.8-py2.7.egg/peak/util/decorators.py の decorator_assignment() で、以下を置き換えます。
oldtrace = [frame.f_trace]
と
oldtrace = [sys.gettrace()]
import pydevd; pydevd.settrace()
ブレークポイントが必要な場所を試してください。