2017-04-11 10 views
10

import unittestを使用してunitestを作成しました。特定のテストを実行したい場合、ブレークポイントを設定してコンソールに行き、式を評価しようとします。stdoutがコンソール画面ではなくなったかのように戻り値はありません。pycharmのunittestのコンソールに出力がありません2017

私はチームシティをインストールしたことはありませんが、不思議なことにunittestの実行時にメッセージが表示されます。非常に奇妙な。 captureStandardOutput = 'true'(最後の行に強調表示されています)が問題の原因だと思っていましたが、テストするためにparamを変更する場所を見つけることさえできません。

C:\Users\selas\AppData\Local\Continuum\Anaconda3\python.exe "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 2017.1\helpers\pydev\pydevd.py" --multiproc --qt-support --client 127.0.0.1 --port 59641 --file "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 2017.1\helpers\pycharm\_jb_unittest_runner.py" --target tests.test_model.FigurationDBTesting.test_printFigurationPerBoundary 
pydev debugger: process 8932 is connecting 
Connected to pydev debugger (build 171.3780.115) 

teamcity[enteredTheMatrix timestamp='...'] 
Launching unittests with arguments python -m unittest tests.test_model.FigurationDBTesting.test_printFigurationPerBoundary 
teamcity[testSuiteStarted timestamp='...' locationHint='python://tests' name='tests' nodeId='1' parentNodeId='0'] 
teamcity[testSuiteStarted timestamp='...' locationHint='python://tests.test_model' name='test_model' nodeId='2' parentNodeId='1'] 
teamcity[testSuiteStarted timestamp='...' locationHint='python://tests.test_model.FigurationDBTesting' name='FigurationDBTesting' nodeId='3' parentNodeId='2'] 

teamcity[testStarted timestamp='...' >!> captureStandardOutput='true' <!< locationHint='python://tests.test_model.FigurationDBTesting.test_printFigurationPerBoundary' name='test_printFigurationPerBoundary' nodeId='4' parentNodeId='3'] 
+0

あなたはPyCharm.appパッケージに( 'ヘルパー/ pycharm /チームシティー/ unittestpy.py'''' '編集しようとすることができます私のMacでは、Windowsのどこにいるのかわからない)。私は '' '' captureStandardOutput = 'false''''に変更し、デバッガは私の変更された値で始まりますが、同じ結果です:( –

答えて

-1

Pycharm unit test interactive debug command line doesn't work

pytest使用(ファイル名を指定して実行]> [編集設定]> [デフォルト]> [Pythonのテスト> py.test>オプションフィールドに-sを追加------>(追加の引数。))

設定pytestにより、デフォルトの実行テスト:

(環境設定]> [ツール]> [PythonのIntergratedツール>デフォルトのテストランナー)

+0

Pycharm 2017.1.2で私にとってはうまくいきません... –

0

pycharm 2017.1とそれにteamcity-messagesを持つpython環境を組み合わせて使用​​している可能性がありますか?そのコンビがクラッシュするのを見てください。 https://youtrack.jetbrains.com/issue/PY-23926

Upvoteそのような場合は(アカウントを作るのに1分かかります)を参照してください。

9

はなく、唯一の2017年1月3日以上ため、このバグのための公式の修正のように見えるPY-22505、あなたのユニットテスト構成(スクリーンショットごとに、必要な値なし)に新しいJB_DISABLE_BUFFERING環境変数を追加することで、

このスクリーンショットは、のデフォルト値のenv varを追加することを示しています。新しい設定はすべて継承されます。私が今できる、代わりにそののenv VARで

Setting env var for all future ad-hoc tests

:あなたはまた、この個別に既に保存するファイル名を指定して実行/デバッグの設定を追加することができます

  1. がブレークポイント
  2. 右クリックを追加します任意のテストまたはクラスを選択し、を選択します。 'デバッグユニットテスト...'メニューオプション
  3. デバッグコンソールに行く
  4. captureStandardOutput='true'に注意してください)私のランタイムを検査し、プリントアウトを取得する:

    ... 
    ##teamcity[testStarted timestamp='...' captureStandardOutput='true' locationHint='python</Users/zyoung/PycharmProjects/Foo/test/unit_tests>://test_distance.Foo.testMatchRatio_050' name='testMatchRatio_050' nodeId='3' parentNodeId='2'] 
    import sys; print('Python %s on %s' % (sys.version, sys.platform)) 
    Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 12:39:47) 
    [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin 
    
    >>> print(self) 
    testMatchRatio_050 (test_distance.Foo) 
    
+0

これは単純に –

+0

@KarelMacekあなたはPyCharmのどのバージョンをお持ちですか? –

+0

PyCharm 2017.2.2を使用して実際に私のために働いています –

関連する問題