Python中的UnitTest

时间:2011-06-21 21:45:16

标签: python testing subclass

  

可能重复:
  ValueError: no such test method in <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 个答案:

答案 0 :(得分:2)

让我们尝试回到简单的事情。在使用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,然后使用setUp方法为您的测试用例设置任何状态,最后您需要一些前缀为test_的方法...测试运行器将执行

如果您将上述文件保存到test_something.py中,然后在控制台中运行python test_something.py,您将看到测试输出到控制台的结果。

如果您可以使用此模式而不是您使用的继承层次结构将示例转换为更清晰的示例,则可以执行测试。

我意识到这不仅仅是一个评论,而是一个答案,但我还不能发表评论。