2011-07-25 6 views
1

私はPyDevでデフォルトのユニットテストモジュールを作成しました。モジュールは次のようになります:PyDevテストランナーを使用して失敗する

import unittest 
class Test(unittest.TestCase): 
    def setUp(self): 
     pass 


    def tearDown(self): 
     pass 


    def testName(self): 
     self.assertEqual(1, 2) #here I expect to see failure message 


if __name__ == "__main__": 
    #import sys;sys.argv = ['', 'Test.testName'] 
    unittest.main() 

"Run as - Python unit-test"オプションを使用してユニットテストを実行します。出力コンソールに表示されるのは、次の2行です。

ファイルの検索...完了。テストモジュール...

そして、何をインポート

。 Eclipseはテストが実行されているかのように動作しますが、実際には何も起こりません。私はテストを終了するために "停止"ボタンをクリックすることができますが、私は何も起こらない場合。ネットを検索するとき、私は上記の出力は、ファイル名とモジュール名を含める必要があることを考え出したこと

NOTE(例えばthis discussionを参照)

私は、「ファイル名を指定して実行 - > Pythonの実行」を使用する場合のオプションを、テストは期待通りに実行されます。私はPyDevテストランナーの使用について何か迷っていると確信していますが、何が見つからないのでしょうか? testNameからtest_nameにテスト*関数名を変更する

(必須アンダースコア)あなたはTEST_でテスト名の前に付ける必要があることを私は(メモリから操作する)だと思う問題に

答えて

0

問題を見つけました。

私のモジュールの初期化コードのいくつかの部分は、構文解析に依存していることがわかりましたsys.argv[0]sys.argv[0]には実行されたプログラムへの予想されるパスが含まれていたため、これは "Run As - > Python Run"を使用すると問題なく動作しました。 "Run As - > Python unit tests"を使用すると、実行中のプログラムはPyDevプラグインディレクトリの "runfiles.py"になります。この予期せぬ変更は無限ループを引き起こし、私は「何も起こらない」と解釈しました。私はこの動作を設計上の誤りとして扱い、私のコードの問題のある部分を修正します。

0

を解決しませんでした。

+0

いいえ、役に立たなかった –

関連する問題