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 |