2011-06-21 121 views
1

可能重複:
ValueError: no such test method in <class 'myapp.tests.SessionTestCase'>: runTest單元測試在Python

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時,你有幾種方法來執行你的測試用例,但最簡單的方法是在包含你的單元測試的文件中有一個主函數。

例如:

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