我正在處理一個項目,該項目每次運行時都會創建一個不同的日誌文件。我有一些測試我的代碼的單元測試,但在這個過程中也會導致創建日誌文件。我的應用程序代碼如下所示:在單元測試期間禁用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