繁体   English   中英

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

[英]Initializing logger in python unit test

import logging

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

       def setUp(self):

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

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

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

如果要进行某些日志记录,可以在setUp方法中执行此操作,或者更有可能在全局范围内执行此操作。

你不应该有__init__方法; 改为在setUp方法中做你需要做的一切。

你可以尝试这个..

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

setUpClass()应该让你为测试用例中的所有测试做初始化,并且只应该执行一次。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM