티스토리 뷰

보통 unittest 는 console 환경에서 돌리는게 일반적 입니다. 하지만 아무래도 GUI 적으로 이쁜 report 가 있으면 좋겠죠?

이를 위한 HtmlTestRunner 패키지가 존재합니다.


기존에 있는 것은 몇 가지 문제가 있어 수정한 것을 공유드립니다.

  1. TestSuite 를 만들어서 돌리면, 레포트가 각각 유닛테스트로 레포트가 만들어 지는 문제

  2. unittest short description 이 나오지 않는 문제

  3. unittest 수행 시 나오는 로그들 (stdout) 에서 개행문자가 무시 되는 경우 ( \t \r \n 같은 것들)


그리고 여기에 기능적으로 마이너 한것을 추가하였습니다.

  1. 유닛테스트를 수행한 시스템 정보 (os / python 버전 / user name)


해당 git 에서 example.py 를 실행 시키시면, tests/ 에 있는 테스트가 실행됩니다. 그리고 레포트는 example_suite/ 경로에 저장됩니다.

여기에 각각 사용자분들 환경에 맞게끔 수정하시면 될겁니다.


example.py 를 보시면, tests 폴더에 있는, unittest 를 로드하여 TestSuite 로 만드는 것이 보입니다.

그리고 HTMLTestRunner(...) 에서 파라미터로, 기타 Note 가 필요하시면 'Note' : 에다가 내용을 추가해 주시면 됩니다.


GitHub 주소 : 

https://github.com/seounghun-chung/HtmlTestRunner


PyQt5 GUI App :

https://github.com/seounghun-chung/PyTestToolPlatform



추가적으로 아마 일반적인 python app 에 대한 unittest 수행을 위해서라면 해당 패키지는 거의 쓸일이 없을거에요. 하지만

python을 이용해서 다른 환경 SW를 테스트할 때 레포트 용으로 사용하시면 될 것 같습니다. (Selenium 을 이용한 웹페이지 unittest 및 임베디드 환경에서 제품을 테스트 후 레포트)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from unittest import TestLoader, TestSuite
from HtmlTestRunner import HTMLTestRunner
from tests.test import TestStringMethods
from tests.test2 import My_Tests
 
example_tests = TestLoader().loadTestsFromTestCase(TestStringMethods)
example2_tests = TestLoader().loadTestsFromTestCase(My_Tests)
 
suite = TestSuite([example_tests, example2_tests])
template_args = {'Note' : 'test sample'}
runner = HTMLTestRunner(output='example_suite'
                        report_name='Test Result V0.0.1'
                        report_title='Test Result V0.0.1',
                        template_args=template_args, 
                        combine_reports = True)
runner.run(suite)
cs

<코드1. example.py>



<그림1. Test report 결과 화면>


<그림2. 기존 개행문자가 안보이던 이슈 해결 및 Short description 추가>

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함