티스토리 뷰

파이썬의 unittest 단위 테스트 프레임워크는 테스트 결과를 TestResult 개체로 확인할 수 있다. TestResult 객체는 TestRunner.run() 메서드에 의해 반환된다. 보통 테스트를 실행하면 콘솔을 통해서 테스트 결과가 출력된다. 만일 테스트 결과를 얻어서 처리하고 싶다면 TestResult를 사용하면 된다.

 

 

 

# 테스트 실행 코드

다음은 이번 포스트에서 사용할 테스트 실행 코드이다. 

import unittest


class TestCase(unittest.TestCase):
    def test_method1(self):
        print("test_method1")
        self.assertTrue(True)

    def test_method2(self):
        print("test_method2")
        self.assertTrue(True)


if __name__ == "__main__":
    runner = unittest.TextTestRunner()
    suite = unittest.makeSuite(TestCase)
    result = runner.run(suite)

 

 

 

# TestResult 속성과 메서드

위의 코드에서 result는 TestResult 개체가 된다. TestResult 개체의 속성과 메서드에 대해 알아보자.

 

## errors 속성

테스트 케이스 인스턴스와 traceback을 포함한 문자열이 포함된 튜플이 포함된 리스트이다. 각 튜플은 예기치 못한 예외를 발생시킨 테스트를 나타낸다.

 

## failures 속성

테스트 케이스 인스턴스와 traceback을 포함한 문자열이 포함된 튜플이 포함된 리스트이다. 각 튜플은 TestCase.assert*() 메서드를 사용하여 실패한 테스트를 나타낸다.

 

## skipped 속성

테스트를 건너뛴 이유가 있는 튜플이 포함된 리스트이다.

 

## wasSuccessful() 메서드

지금까지 실행된 모든 테스트가 통과한 경우 True를 리턴하고, 그렇지 않은 경우 False를 리턴한다.

 

## expectedFailures 속성

예상된 테스트 케이스의 실패와 오류를 나타낸 튜플이 포함된 리스트이다.

 

## unexpectedSuccess 속성

실패로 예상된 테스트 케이스가 성공한 내용을 나타낸 튜플이 포함된 리스트이다.

 

# TestResult 

if __name__ == "__main__":
    runner = unittest.TextTestRunner()
    suite = unittest.makeSuite(TestCase)
    result = runner.run(suite)

    print(f"result: {result}")
    print(f"errors: {result.errors}")
    print(f"failures: {result.failures}")
    print(f"was all Successful? {result.wasSuccessful()}")
test_method1
.test_method2
.
----------------------------------------------------------------------
Ran 2 tests in 0.000s

OK
result: <unittest.runner.TextTestResult run=2 errors=0 failures=0>
errors: []
failures: []
was all Successful? True
댓글
공지사항