Daily Develope

[Python] 단위테스트 (Unit test) 본문

Develope/Python

[Python] 단위테스트 (Unit test)

noggame 2022. 10. 25. 14:07

 

main_test.py 에서 특정 모듈에서 선별된 기능들만 일괄 테스트

 

ㅇ main_test.py

- suite_algorithm function에 명시된 기능만 테스트

import unittest

def _function_list(class_object):
    return [x for x in class_object.__dict__ if type(class_object.__dict__[x]) == type(_function_list)]


def suite_algorithm():
    ### Algorithm - Rating
    from ... import AlgorithmTestcase

    suite = unittest.TestSuite()
    suite.addTest(AlgorithmTestcase('test_al_01'))

    return suite



def suite_accuracy():
    from ... import AccuracyTestcase
    suite = unittest.TestSuite()

    # for all
    for fut in _function_list(AccuracyTestcase):
        suite.addTest(AccuracyTestcase(fut))

    return suite


def suite_db():
    from ... import MyDBTestcase
    suite = unittest.TestSuite()
    suite.addTest(MyDBTestcase('test_search'))

    return suite


if __name__ == '__main__':
    runner = unittest.TextTestRunner()

    runner.run(suite_algorithm())
    # runner.run(suite_accuracy())
    # runner.run(suite_db())

 

ㅇ AlgorithmTestcase 클래스

import unittest
...

class AlgorithmTestcase(unittest.TestCase):
    def test_al_01(self):
    	expect_value = 123
        self.assertEqual(al01.result("..."), expect_value)
        
    def test_al_02(self):
        expect_value = "hello world"
        self.assertEqual(al02.result("..."), expect_value)
        
        ...

 

ㅇ main_test 테스트 실행

$ python main_test.py

 

ㅇ AlgorithmTestcase 클래스에 정의된 전체 테스트케이스 실행

$ python -m unittest {target_dir_path}/{target_testcase_file_name}.py

 


 

Comments