UnitTest 프레임 워크-프레임 워크

'unittest'는 테스트 자동화, 테스트를위한 설정 및 종료 코드 공유, 테스트를 컬렉션으로 집계,보고 프레임 워크에서 테스트의 독립성을 지원합니다.

unittest 모듈은 일련의 테스트에 대해 이러한 품질을 쉽게 지원할 수있는 클래스를 제공합니다.

이를 달성하기 위해 unittest는 다음과 같은 중요한 개념을 지원합니다.

  • test fixture− 이것은 하나 이상의 테스트를 수행하는 데 필요한 준비 및 관련 정리 작업을 나타냅니다. 예를 들어, 임시 또는 프록시 데이터베이스, 디렉토리 생성 또는 서버 프로세스 시작이 포함될 수 있습니다.

  • test case− 이것은 가장 작은 테스트 단위입니다. 이것은 특정 입력 세트에 대한 특정 응답을 확인합니다. unittest는 기본 클래스를 제공합니다.TestCase, 새 테스트 케이스를 만드는 데 사용할 수 있습니다.

  • test suite− 이것은 테스트 케이스, 테스트 스위트 또는 둘 다의 모음입니다. 함께 실행해야하는 테스트를 집계하는 데 사용됩니다. 테스트 스위트는 TestSuite 클래스에 의해 구현됩니다.

  • test runner− 이것은 테스트 실행을 조정하고 사용자에게 결과를 제공하는 구성 요소입니다. 러너는 그래픽 인터페이스, 텍스트 인터페이스를 사용하거나 테스트 실행 결과를 나타내는 특수 값을 반환 할 수 있습니다.

단위 테스트 만들기

다음 단계는 간단한 단위 테스트 작성에 포함됩니다.

Step 1 − 프로그램에서 unittest 모듈을 가져옵니다.

Step 2− 테스트 할 기능을 정의합니다. 다음 예제에서는 add () 함수를 테스트합니다.

Step 3 − unittest.TestCase를 서브 클래 싱하여 테스트 케이스를 생성합니다.

Step 4− 테스트를 클래스 내부의 메서드로 정의합니다. 메소드 이름은 'test'로 시작해야합니다.

Step 5− 각 테스트는 TestCase 클래스의 assert 함수를 호출합니다. 여러 유형의 어설 션이 있습니다. 다음 예제는 assertEquals () 함수를 호출합니다.

Step 6 − assertEquals () 함수는 add () 함수의 결과를 arg2 인수와 비교하고 비교가 실패하면 assertionError를 발생시킵니다.

Step 7 − 마지막으로 unittest 모듈에서 main () 메서드를 호출합니다.

import unittest
def add(x,y):
   return x + y
   
class SimpleTest(unittest.TestCase):
   def testadd1(self):
      self.assertEquals(add(4,5),9)
      
if __name__ == '__main__':
   unittest.main()

Step 8 − 명령 줄에서 위 스크립트를 실행합니다.

C:\Python27>python SimpleTest.py
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK

Step 9 − 다음 세 가지가 테스트의 가능한 결과 일 수 있습니다. −

Sr. 아니요 메시지 및 설명
1

OK

테스트를 통과했습니다. 콘솔에 'A'가 표시됩니다.

2

FAIL

테스트가 통과되지 않고 AssertionError 예외가 발생합니다. 콘솔에 'F'가 표시됩니다.

ERROR

테스트에서 AssertionError 이외의 예외가 발생합니다. 콘솔에 'E'가 표시됩니다.

이러한 결과는 콘솔에 각각 '.', 'F'및 'E'로 표시됩니다.

명령 줄 인터페이스

unittest 모듈은 명령 줄에서 단일 또는 다중 테스트를 실행하는 데 사용할 수 있습니다.

python -m unittest test1
python -m unittest test_module.TestClass
python -m unittest test_module.TestClass.test_method

unittest는 다음 명령 줄 옵션을 지원합니다. 모든 명령 줄 옵션 목록을 보려면 다음 명령을 사용하십시오.

Python –m unittest -h

Sr. 아니요 옵션 및 설명
1

-h, --help

이 메시지 표시

2

v, --verbose

자세한 출력

-q, --quiet

최소 출력

4

-f, --failfast

첫 번째 실패시 중지

5

-c, --catch

control-C 포착 및 결과 표시

6

-b, --buffer

테스트 실행 중 버퍼 stdout 및 stderr