프로그래밍/Python

Python 공부 노트 5. - 단위 테스트

조대협 2013. 1. 21. 00:10

단위테스트는 자바의 JUnit과 사상이 기본적으로 같음


import unittest


class SimpleTest(unittest.TestCase):

        @classmethod

        def setUpClass(cls):

            print("set up class")

            return

        

        @classmethod

        def tearDownClass(cls):

            print("tearDown class")

            

        def setUp(self):

            print("this is setup")

            return

            

        def tearDown(self):

            print("this is tear down")

            return

            

        def testSimple(self):

            self.assert_(1==2, "my assert failed")

            

        def testSecond(self):

            self.assertEqual(2, 2, "equal fails")

 

if __name__ == '__main__':

    unittest.main()           

#suite = unittest.TestLoader().loadTestsFromTestCase(SimpleTest)

#unittest.TextTestRunner(verbosity=2).run(suite)

  • setUpClass : 해당 클래스에서 테스트 시작시 한번만 사용됨. 초기 테스트 값 로딩이나 초기화
  • setUp : 테스트케이스 실행될때 마다 사용됨
  • tearDownClass: 해당 테스트 클래스 종료시 한번만 사용됨. (테스트 종료시 자원 정리등)
  • tearDown : 각 테스트 케이스 종료시 마다 사용됨
  • 테스트 케이스는 testXXX 로 시작됨
- 간단하게 unittest.main() 호출해서 시작할 수 도 있고, 별도의 TestSuite을 만들어서 테스트 가능
- 자체 프레임웍으로 LoadTest도 가능 - http://docs.python.org/2/library/unittest.html#load-tests-protocol
- Hudson (Jekins)연동은 Python을 이용하여 수행 - http://www.jython.org/jythonbook/en/1.0/TestingIntegration.html

아예 부하 테스트는 multi-mechanize를 이용해 가능. (작년에 보던 놈인데, 이제 파이썬 볼줄 아니까는 테스트 할 듯 있을듯)
http://testutils.org/multi-mechanize/
국내에서는 nGrinder가 많이 사용됨