티스토리 뷰
반응형
파이썬의 unittest 단위 프레임 워크는 테스트 스위트(test suite)를 제공한다. 보통 테스트 케이스를 실행하면, 해당 테스트 케이스의 모든 테스트 메서드를 실행한다. 하지만 테스트 스위트는 테스트하려는 기능에 따라 원하는 테스트들을 모아서 실행할 수 있게 된다.
테스트 스위트는 다음과 같은 항목을 같이 묶을 수 있다.
- 테스트 메서드
- 테스트 스위트
- 테스트 케이스
# 테스트 스위트에서 사용할 테스트 케이스
테스트 스위트에 사용할 테스트 케이스는 다음과 같다.
import unittest
class TestCase1(unittest.TestCase):
def test_testcase1_1(self):
print("test_testcase1_1")
self.assertTrue(True)
def test_testcase1_2(self):
print("test_testcase1_2")
self.assertTrue(True)
class TestCase2(unittest.TestCase):
def test_testcase2_1(self):
print("test_testcase2_1")
self.assertTrue(True)
def test_testcase2_2(self):
print("test_testcase2_2")
self.assertTrue(True)
# 테스트 스위트에 테스트 메서드 추가하기
테스트 스위트는 unittest.TestSuite 클래스를 이용한다. 테스트할 테스트 메서드를 TestSuite를 생성 시 인자로 전달할 수도 있고, .addTest()나 .addTests()를 사용해서 추가할 수도 있다.
다음은 TestSuite를 생성 시 TestCase1의 test_testcase1_1() 테스트 메서드와 TestCase2의 test_testcase2_1() 메서드 메서드를 전달하는 예제이다.
suite = unittest.TestSuite(
[TestCase1("test_testcase1_1"), TestCase2("test_testcase2_1")]
)
runner = unittest.TextTestRunner()
runner.run(suite)
test_testcase1_1
.test_testcase2_1
.
----------------------------------------------------------------------
Ran 2 tests in 0.000s
OK
위의 코드를 .addTest()로 사용하면 다음과 같다.
suite = unittest.TestSuite()
suite.addTest(TestCase1("test_testcase1_1"))
suite.addTest(TestCase2("test_testcase2_1"))
runner = unittest.TextTestRunner()
runner.run(suite)
.addTests()로 사용하면 다음과 같다.
suite = unittest.TestSuite()
suite.addTests([TestCase1("test_testcase1_1"), TestCase2("test_testcase2_1")])
runner = unittest.TextTestRunner()
runner.run(suite)
# 테스트 스위트에 테스트 케이스 추가하기
테스트 스위트에 테스트 케이스를 추가하려면 unittest.makeSuite()로 테스트 스위트를 만들 수 있다.
suite = unittest.makeSuite(TestCase1)
runner = unittest.TextTestRunner()
runner.run(suite)
# 테스트 스위트에 테스트 스위트를 추가하기
테스트 스위트에 테스트 스위트를 추가하는 것은 테스트 메서드를 추가하듯이 하면 된다.
suite1 = unittest.TestSuite(
[TestCase1("test_testcase1_1"), TestCase2("test_testcase2_1")]
)
suite = unittest.TestSuite([TestCase1("test_testcase1_2")])
suite.addTest(suite1)
runner = unittest.TextTestRunner()
runner.run(suite)
test_testcase1_2
.test_testcase1_1
.test_testcase2_1
.
----------------------------------------------------------------------
Ran 3 tests in 0.000s
OK
반응형
'Python > unittest' 카테고리의 다른 글
파이썬 unittest - 테스트 건너뛰기 (0) | 2023.02.18 |
---|---|
파이썬 unittest - 테스트 함수를 unittest로 실행하기 (0) | 2023.02.18 |
파이썬 unittest - 테스트 케이스와 텍스트 픽스처 (0) | 2023.02.18 |
파이썬 unittest - unittest란 무엇인가? 중요한 개념 그리고 실행방법 (0) | 2023.02.18 |
테스트 주도 개발 (TDD) (0) | 2023.02.12 |
댓글
공지사항