2011-06-21 7 views
1
でUnitTestを

可能性の重複:
ValueError: no such test method in <class 'myapp.tests.SessionTestCase'>: runTestPythonの

import unittest 

class BzTestSe(unittest.TestCase): 
    DEFAULTUSERNAME = 'username-a2' 
    DEFAULTPASSWORD = 'pass' 
    DEFAULTHOST = 'localhots' 

    def __init__(self,username=DEFAULTUSERNAME, password=DEFAULTPASSWORD, host=DEFAULTHOST): 
     super(unittest.TestCase,self).__init__() 
     self.username=username 
     self.password=password 
     self.host=host 

class test_se_topwebsite(BztTestSe): 
    def setUp(self): 
     print "setup" 

    def test_test_se_topwebsite(self): 
     self.fail() 

私は別のファイルから上記のクラスを呼び出すと、私は次のエラーを取得します。私が間違っている場所を教えてください。

Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
File "testsuite/test_se.py", line 10, in __init__ 
    super(unittest.Testcase,self).__init__() 
File "/usr/lib/python2.7/unittest/case.py", line 184, in __init__ 
    (self.__class__, methodName)) 
ValueError: no such test method in <class 'testsuite.test_se.BztTestSe'>: runTest 
+1

「上記のクラスに電話する」?これは何を意味するのでしょうか? –

+0

申し訳ありません、Pythonの初心者です。私は別のファイルからこのクラスを呼び出しましたが、このエラーは – Somu

+1

で、クラスを呼び出すために他のファイルで使用しているコードを正確に示しています。 –

答えて

2

簡単に何かに戻ってみてください。 unittestを使用するには、テストケースを実行するためのいくつかの方法がありますが、最も簡単な方法は、unittestを含むファイルにmain関数を持たせることです。例えば

import unittest 

class TestSomething(unittest.TestCase): 

    def setUp(self): 
     self.message = "does this work" 

    def test_message_is_expected(self): 
     self.assertEquals("does this work", self.message) 


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

テストケース(クラス)のサブクラスたunittest.TestCase、あなたは、あなたのテストケースのための任意の状態を設定するには、セットアップの方法を使用し、そして最後に、あなたはいくつかの方法をお勧めしますテストランナーが実行する接頭辞test_ ...

上記のファイルを保存した場合、test_something.pyとし、コンソールでpython test_something.pyを実行すると、テスト出力の結果がコンソールに表示されます。

使用した継承階層ではなく、このパターンを使用してサンプルを少し明瞭にキャストすることができれば、テストを実行することができます。

私はこれが答えよりもコメントですが、私はまだコメントをすることができません。

+0

とにかくコメントは少し長いです:) – bdonlan