在python单元测试中初始化记录器

时间:2012-07-31 23:20:07

标签: python unit-testing

import logging

class TestMyClass(unittest.TestCase):
       def __init__(self):
            self.logger = logging.getLogger('MyClassLog')

       def setUp(self):

我正在尝试在构造函数中实例化记录器。但我得到这个错误:             ... TypeError: init ()只需1个参数(给定2个)

这是为什么?如何正确实例化记录器?

4 个答案:

答案 0 :(得分:3)

你压倒__init__。你不能在TestCase这样做,因为你的测试用例将由测试运行器实例化,并且传递给它的参数将是运行的方法,所以你已经撤消了所有需要完成的初始化(并没有采用正确数量的参数)。

如果您想进行一些日志记录,可以使用setUp方法,或者更可能只是全局方式。

答案 1 :(得分:2)

你不应该有__init__方法;用setUp方法做你需要做的一切。

答案 2 :(得分:2)

你可以试试这个..

class TestMyClass(unittest.TestCase):
def __init__(self, methodName):
    super(TestMyClass, self).__init__(methodName)
    self.logger = logging.getLogger('MyClassLog')

答案 3 :(得分:1)

setUpClass()应该允许您对测试用例中的所有测试进行初始化,并且只应该执行一次。