'' ' 를 사용하는 이유 단위 테스트 프레임 워크를? : 실시 예에서의 실행을위한 실시 예 및 조직과 많은 시간 1. 2. 비교 방법은 풍부한 제공 3. 로그 리치 제공 '' 오기 유닛 테스트 오기 HTMLTestRunner 오기 OS의 경로 = os.getcwd () 클래스 Test_baidu (unittest.TestCase의 ) : DEF 설정 (자동) : 인쇄 ( ' 각이 시작 ----------- ' ) DEF TEST_1 (자동) : 인쇄 ( ' TEST_1 ' ) self.assertEqual ( ' . 1 ' , ' 2 ' , MSG =' .! 1 = 2 ' ) DEF의 test_2 (자기) 전단 ( ' test_2 ' ) self.assertIsInstance ([ 1,2 ]리스트) unittest.skip @ # 1 이 메소드가 실행되지 않지만, 비록 설정 및 해체의 실행 역시 DEF의 test_3 (자기) : 인쇄 ( ' test_3 ' ) self.assertIs ( ' 1. ' , ' 1. ' ) DEF 의 tearDown (자동) : 인쇄 ( ' 각 끝 ---------- ' ) @ classmethod DEF setUpClass (CLS) : 인쇄 ( ' 큰 프로젝트를 열 수 있습니다 +++++++++ ' ) @classmethod DEF tearDownClass (CLS) : 인쇄 ( ' 큰 프로젝트가 종료 ++++++++++ + " ) IF __name__ == ' __main__ ' : SUIT는 = unittest.TestSuite () suit.addTest (Test_baidu ( ' test_2 ' )) #의 순서로 먼저 실행되는이 (A) 내로 추가 --- 실시 예와 조직이다 suit.addTest (Test_baidu ( ' TEST_1 ' )) suit.addTest (Test_baidu ( 'test_3 ' )) # 스킵 존재로, 또한 전혀 사용 목록에 추가 러너는 = unittest.TextTestRunner () # 사건을 추가 한 후이 TextTestRunner에,에 맞게 실행되는 () 객체 실행할 수 있습니다 -기구 편리한 케이스 키 수행 #를 저가 unittest.TestLoader = (). 저가 (경로) # runner1 HTMLTestRunner.HTMLTestRunner = () #에 runner1.run (저가) runner.run (SUIT)
상기 테스트는 *의 평이고 ,, 이는 main.py은
'' ' 거의 정장 하나를 추가 할 수 없습니다 예에 사용합니다. 우리는 모든 사용 사례는 많은 테스트 *의 평가있다, TEST_Case 역할에있는합니다 지금 만 u1.py '' ' 가져 오기 유닛 테스트, 운영 체제의 경로 = os.getcwd () 인쇄 (경로) 디스 커버 = unittest.defaultTestLoader. 디스 커버 (경로, 패턴 = ' U는 평 * ' ) #은 디스 커버 복귀 Testloader 있도록 모든 경우가 소송에로드하는 것입니다, 소송입니다. 러너 = unittest.TextTestRunner () runner.run (저가) IF __name__ == ' __main__ ' : unittest.main (상세도 . = 1)
스킵 테스트 건너 뛰기
수입 유닛 테스트에 수입 HTMLTestRunner의 수입 운영 체제의 경로 = os.getcwd () 클래스 Test_baidu (unittest.TestCase) : 데프 설정 (자동) : 인쇄 ( ' 每一个开始了----------- ' ) DEF test_1 ( 자기) : 인쇄 ( ' test_1 ' ) self.assertEqual ( ' 1 ' , ' 2 ' , MSG = ' 1 = 2! ' ) 데프 test_2 (자동) : 인쇄 (' Test_2 ' ) self.assertIsInstance ([ 1,2 ]리스트) @ unittest.skip # 이 방법 설정 및 해체의 수행도 수행되지 않지만 있지만 DEF의 test_3 (자기) 전단 ( ' test_3를 ' ) self.assertIs ( ' . 1 ' , ' . 1 ' ) unittest.skipIf @ ( . (3) <2, ' 테스트가 스킵 실제 조건, 조건이 거짓의 경우 인 경우에 수행되는 ' ) 데프 : test_4 (자기) 전단 ( ' test_4를 ' ) 셀프 .assertIs ( '. (1) ' , ' 1. ' ) unittest.skipUnless (@ 3 <2. ' 상태 행하지 않는 거짓 테스트 ' ) # 않는 않는 DEF TEST_5 (자기) 전단 ( ' TEST_5 ' ) self.assertIs ( ' . 1 ' , ' . 1 ' ) DEF 의 tearDown (자동) : 인쇄 ( ' 각 끝 ----------이 ' ) @classmethod DEF : setUpClass (CLS) 인쇄 ( '대형 프로젝트가 열려 +++++++++됩니다 ' ) @classmethod DEF : tearDownClass (CLS) 인쇄 ( ' 큰 프로젝트가 +++++++++++ 종료 ' ) IF __name__ == ' __main__을 ' : unittest.main (다변 = 2)
HTML 파일을 생성
가져 오기 유닛 테스트, OS 에서 HTMLTestRunner 가져 오기 HTMLTestRunner의 경로를 = os.getcwd () 인쇄 (경로) 발견 = unittest.defaultTestLoader.discover (경로, 패턴 = ' U이 * 평 ' ) # 발견이 반환 소송, 그래서 모든 Testloader 케이스는 부하를 이용할 수 있습니다. htmlpath = R & LT 경로 + ' \ report.html " 인쇄 (htmlpath) F = 열기 (htmlpath, ' WB ' ) 러너 = HTMLTestRunner (F = 트림, 상세도 = 2, 표제 = ' 시험 성적서 ' , 설명 = '자신의 테스트 결과 ' ) #의 htmltestrunner 패키지의 TestRunner하는 것입니다 runner.run (발견) f.close () IF __name__ == ' __main__ ' : unittest.main (상세도를 . = 1)
가져 오기 시간 해주기 = time.strftime ( " % Y- % M- % D % H- % M- % S " ) '' ' 원래의 HTML 파일 이름은 모두 각을하게 다룰 것입니다 재생, 죽은 기록 : 이름이 같은 (오류가하지 않는 것 파일 이름) 아니다 합류 '' ' htmlpath = ' F : / ASUS / auto_file / unittest_html ' + ' / ' + 현재 + ' report.html ' F = 열기 (htmlpath, ' WB ' ) 러너 = HTMLTestRunner (스트림 = F, 상세 = 2, 제목 = ' 테스트 보고서 ' , 설명 = ' 이 자신의 테스트 결과입니다 ' ) #을htmltestrunner 패키지의 TestRunner하는 것입니다 runner.run를 (발견) f.close ()