티스토리 뷰
파이썬의 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 |
댓글
공지사항