Python中的单元测试
可能重复的问题:
ValueError: 在 <class 'myapp.tests.SessionTestCase'> 中没有这样的测试方法: runTest
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 个回答
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这个类继承而来的。然后你会用一个叫setUp的方法来设置测试用例的状态,最后你需要一些方法,名字前面加上test_ ...,这些方法会被测试运行器执行。
如果你把上面的代码保存为test_something.py,然后在控制台运行python test_something.py,你就能看到测试结果输出到控制台上。
如果你能把你的例子用这种模式重新整理得更清晰,而不是用你之前的继承结构,你可能就能成功执行你的测试了。
我知道这更像是一个评论而不是答案,但我还不能发表评论。