[파이썬] unittest 테스트 로깅 설정하기

테스트를 작성하고 실행하는 동안 로그는 문제를 해결하고 디버깅하는 데 도움을 줄 수 있는 유용한 도구입니다. unittest 모듈은 테스트 로깅을 지원하기 위해 내장된 로깅 기능을 제공합니다. 이 블로그 포스트에서는 unittest에서 로깅을 활성화하고 설정하는 방법을 알아보겠습니다.

1. 로깅 모듈 가져오기

먼저, logging 모듈을 가져와야 합니다.

import logging

2. 테스트 로깅 활성화

unittest에서 로깅을 활성화하려면 unittest.TestCase 클래스를 상속한 테스트 케이스 클래스를 만들어야 합니다. 그런 다음, logging.basicConfig() 메서드를 사용하여 로깅을 활성화하고 원하는 설정을 구성할 수 있습니다.

import logging
import unittest

class MyTestCase(unittest.TestCase):

    def setUp(self):
        logging.basicConfig(level=logging.INFO)  # 로깅 레벨 설정
        self.logger = logging.getLogger(__name__)  # 로거 가져오기

    def test_example(self):
        self.logger.info("이것은 로깅 메시지입니다.")
        # 테스트 코드 작성

if __name__ == '__main__':
    unittest.main()

위 예제에서는 테스트 메소드가 실행되면 setUp() 메소드가 호출되어 로깅을 설정합니다. basicConfig() 메서드의 level 매개변수를 사용하여 로깅 레벨을 설정할 수 있습니다. 예시에서는 INFO 레벨을 사용했지만, 필요에 따라 DEBUG, WARNING, ERROR와 같은 다른 레벨을 선택할 수 있습니다. 로깅 레벨은 해당 레벨보다 중요도가 같거나 높은 메시지만 기록합니다.

logger 객체를 통해 로그 메시지를 작성할 수 있습니다. 예제에서는 logger.info()를 사용하여 “이것은 로깅 메시지입니다.”라는 메시지를 기록합니다.

3. 로깅 메시지 레벨

테스트 로깅에서 사용할 수 있는 메시지 레벨은 다음과 같습니다:

로깅 레벨을 설정할 때는 필요한 로그의 중요도에 맞게 선택하면 됩니다.

결론

unittest를 사용하여 테스트를 작성하면서 로깅을 활용할 수 있습니다. 이를 통해 테스트 실행 중 발생하는 문제를 신속하게 식별하고 디버깅할 수 있습니다. 테스트 로깅을 설정하여 프로젝트의 테스트 코드를 보다 효율적이고 안정적으로 관리할 수 있습니다.