2013-02-08 33 views
19

私はいくつかのユニットテストをPythonで行い、いくつかの事前検査はsetUpClassで行っています。setUpClassでpython unittestに失敗する方法は?

class MyTests(unittest.TestCase): 

    @classmethod 
    def setUpClass(cls):  
     unittest.TestCase.fail("Test") 

    def test1(self): 
     pass 

if __name__ == '__main__': 
    unittest.main() 

はエラーTypeError: unbound method fail() must be called with TestCase instance as first argument (got str instance instead)を与える:次の簡単な例として、setUpClassfail - どのように私はunitestを投げることができます。

エラーが発生するのはインスタンスメソッドで、私はMyClassのインスタンスがまだありません。 unittest.TestCase自体は何のテストを持っていないよう

unittest.TestCase().fail("Test") 

のようにオンザフライインスタンスを使用することも、動作しません。どのようにMyClassですべてのテストを失敗する任意のアイデア、setUpClassのいくつかの条件が満たされていない場合?

追加情報質問:setUpClassでテストを確認する方法はありますか?

@classmethod 
def setUpClass(cls): 
    cls.flag = False 

def setUp(self): 
    if self.flag: 
     self.fail("conditions not met") 

・ホープ、この:あなたのセットアップインスタンスメソッドは、私はクラスレベルでこれを行う最も簡単な方法は何かので、クラス変数を作ることだと思うすべてのテスト

を失敗に入れ

答えて

22

self.fail("test")あなたが欲しいものです。シンプルなアサートを使用して

+0

を動作するはずです。 'cls.fail()'も動作しません。 – Alex

+0

誰もそれを見ていない、修正されました。 – Raufio

22

は、私がself`がこのレベルで定義されていない `ので、` MyTest`のインスタンスではありません `setUpClass`、で午前

assert False, "I mean for this to fail" 
+0

私はクラスメソッドである 'setUpClass'に入っていますので、' self'はありません... – Alex

+0

シンプルな 'assert'は本当に良いアイデアです... – Alex

+0

あなたが探していたことがあればそれを受け入れてください:) – Greg

関連する問題