我正在处理一个项目,该项目每次运行时都会创建一个不同的日志文件。我有一些测试我的代码的单元测试,但在这个过程中也会导致创建日志文件。我的应用程序代码如下所示:在单元测试期间禁用python日志记录
module.py
import logging
from uuid import uuid4
class TestRun:
def __init__(self):
self.test_run_id = str(uuid4())
self.logger = logging.getLogger(__name__)
self.logger.setLevel(logging.INFO)
handler = logging.FileHandler('{}.log'.format(self.test_run_id))
self.logger.addHandler(handler)
def prep_test_run(self):
self.logger.info('Starting prep')
if __name__ == '__main__':
tr = TestRun()
tr.prep_test_run()
我的测试代码是这样的:
import unittest
from module import TestRun
class TestModule(unittest.TestCase):
def test_function(self):
tr = TestRun()
tr.prep_test_run()
我每次运行单元测试文件被创建。有没有办法在运行单元测试时禁用它。我试图在def setUp(self)
中设置日志级别,但它不起作用。
我不确定测试的确切内容,但您可以:在写入文件之后清理文件,或将标记传入一个或两个类的方法(如'test = 1'),在这些情况下,您创建if语句以跳过代码中使日志文件不需要的步骤。 – JacobIRR
请注意,像'setUp'一样,Unit Tests支持'tearDown()'方法来处理完全像这样的事情。 – JacobIRR