셀레늄 - 유닛 테스트 단위 테스트 프레임 워크

1, 유닛 테스트 소개

을위한 프레임 워크를 테스트 장치를 내용 왜
다른 테스트 시나리오의 요구를 충족하기 위해 프레임 워크를 테스트 장치에 참여하는 데 필요한 조직 및 테스트 케이스의 실행 유닛 테스트 프레임 워크는 다양한 비교 방법을 제공합니다 : 시험 결과의 예상 결과 ==와 실제 결과의 비교
단위 테스트를 프레임 워크는 다양한 로그 제공 : 테스트 실패의 수와 이유를 제공하고 의해 실패
일반적인 단위 테스트 프레임 워크
doctest가, 유닛 테스트, pytest, 코 등
자바 - "JUnit을 (TestNG를), C + +를 -" googleTest, C #을 - "NUNIT

2 유닛 테스트 핵심 구성 요소

 3, 유닛 테스트 작업

테스트 케이스 : 한 테스트 케이스는 테스트 케이스이다. 설정 (준비 테스트 환경), 실행 (테스트 실행), 분해 (감소 테스트 환경).
있는 TestSuite (세트 또는 키트) 테스트 케이스를 복수 세트 설정하고, 실내는 테스트 케이스는 복수 있고, 또한 중첩 된 세트 일 수있다.
TestLoader은 : 테스트 케이스가있는 TestSuite로로드하는 데 사용됩니다.
TestTestRunner : 예 시험 (실행 방법), 시험 결과가 TestTestresult에 저장됩니다 수행.
고정 : 빌드 및 테스트 환경을 파괴한다.

 4 유닛 테스트 시험 조직 세포

건설 단위 테스트
시나리오 : 문자열 예 교체

 

 5, 빌드 테스트 스위트 (테스트 케이스 최적화)

유닛 테스트 케이스의 증가가 고려 설정 (제조 시험 환경)의 각 테스트 코드의 많은 동일한 조작이있을 것이라고의 tearDown (테스트 환경의 감소)

 

 6, 시험 조직의 복수 (테스트 최적화 깊이)

테스트를 최적화하기 위해 계속 : 모든 테스트 케이스는 기능 시험에 의해 시험의 시작을 저장, 저장을 위해 시간을 소비 방식을 별도의 클래스가 필요하지 않습니다.

 

 7, 빌드 테스트 스위트

테스트 케이스를 복수 세트 설정하고, 실내는 테스트 케이스는 복수 있고, 또한 중첩 된 세트 일 수있다.

 8, 테스트 스위트 최적화

테스트 케이스의 동작 부

 테스트 클래스에서 수행 된 모든 테스트, 유닛 테스트 모듈은 makesuite을 제공합니다

 제어 9 테스트 클래스 복수

 

 도 10은 테스트가 수행

별도의 파일에 먼저 StringReplaceTestCase, StringReplace.py는 평
방법 설명으로, 방법에 대한 의견.
테스트 케이스의 수술 부분은, 사용 사례 구현하는 사용자 제어를 측정 test_suite.py를 만드는
모든 테스트 케이스를 실행합니다.

(11) 검사를 스킵

파일을 수정 StringReplace와 이해 스킵, skipif, skipunless

 12, 유닛 테스트 프레임 워크 요약

unittest.TestCase :의 TestCase 클래스, 테스트 케이스 클래스 상속의 기본 클래스의 모든. (unittest.TestCase의) 테스트 클래스 :
unittest.main은 () : 사용 단위가 쉽게 테스트 모듈 테스트 스크립트로 변경 될 수 있습니다 직접 실행할 수 있습니다
unittest.TestSuite을 () : 유닛 테스트 프레임있는 TestSuite () 클래스는 테스트 스위트를 만드는 데 사용됩니다 가.
unittest.TextTestRunner () : 유닛 테스트 TextTestRunner 프레임 (), 테스트 스위트를 실행하는 () 메소드는, 다음과 같은 클래스 RUN을 통해 테스트 스위트 제품군의 매개 변수를 조립된다.
unittest.skip () : 실시 예를 실행하는 경우 데코 실행 일시적 장식 스트립 시험을 보호하는데 사용될 몇몇 경우 원하지 않을 수도있다. 일반적인 사용은 테스트를 디버깅하려면 다른 사용 사례를 차폐 할
@ (이유) unittest.skip : (생략 이유) 장식 : 장식 무조건 스킵 테스트 및 테스트가 생략 된 이유입니다.
skipIf (: unittest.skipIf (이유) @ 조건, 이유) 장식 : 조건이 테스트가 생략 된 장식 및 테스트를 건너 뛰는 이유입니다, 사실이다.
@ unittest.skipUnless (이유) : skipUnless ( 조건, 이유) 조건이 거짓 인, 시험의 장식을 생략하고, 검사를 생략하는 이유 : 장식이

초기화 설정 () 메소드는 테스트 전에 수행 하였다. 시험은 브라우저에 액세스해야하는 브라우저가 설치 드라이브에 인스턴스를 생성 할 수 있습니다.
의 tearDown ()의 tearDown () 메소드는, 테스트 후 가까운 브라우저 보수 작업을 수행하기 위해 사용된다.
어설 : 테스트 케이스 실행시, 최종 사용 된 경우 수행 여부 평등 실제 얻어진 예상 테스트 결과를 판정함으로써 판정된다.
assertEqual (a, b는 [MSG = ' 테스트 실패 정보를 인쇄']) A 및 B가 동일한 주장 테스트 케이스에 의해 동일하다.
assertNotEqual (a, b는 [MSG = ' 테스트 실패 정보를 인쇄']) A 및 B가 동일한 주장이 아닌 다음 테스트를 통해 동일.
assertTrue ([MSG = '테스트 정보를 인쇄 실패'] X) : X가 어서 true이면 테스트가 참 통해서이다.
addTest는 () 메소드는 테스트 스위트에 테스트를 추가하는 것입니다.

 테스트 스위트를 실행 테스트, 테스트 스위트 매개 변수의 모음입니다 : ()를 실행

 13 HTML 보고서는 설명

HTMLTestRunner 확장 파이썬 단위 유닛 테스트 표준 라이브러리가 테스트 보고서 HTML을 생성하기위한 프레임 워크를 테스트하고
다운로드 : http://tungwaiyip.info/software/HTMLTestRunner.html

 14 HTML 테스트 결과

HTMLTestRunner.py 다운로드 http://tungwaiyip.info/software/HTMLTestRunner.html
HTMLTestRunner.py가 C에 배치됩니다 저장 경로 : \ Users (사용자) \ 관리자 \의 AppData \ 로컬 \ 프로그램 \ Python37 \ lib 디렉토리
HTMLTestRunner.py 기반 python2입니다 * 개발은, python3에 사용 가능하도록하기 위해 파일을 수정해야합니다.
검토 요약 : 
라인 94, 가져 오기있는 StringIO 수입 IO를 수정
, 라인 539, self.outputBuffer = io.StringIO () 수정 self.outputBuffer = StringIO.StringIO ()
라인 (642)에 의지하지 않을 경우 rmap.has_key ( CLS) RMAP의 CLS하지 않으면 변형 :
766 행은 UO = o.decode (라틴-1 ') 변형 UO는 E =
라인 (772), 단말 = e.decode (라틴-1 ') UE는 E = 변성
'\ n 시간 경과, 라인 (631), 인쇄를 sys.stderr를 >> % (self.stopTime-self.startTime) % S' 변형은 sys.stderr를 (인쇄 '\ n 시간 경과 %의 '% (self.stopTime-self.startTime))

Test_suite HTML 기반의 보고서 파일은 D 드라이브라고 result.html에 저장, 생성

추천

출처www.cnblogs.com/katyhudson/p/12463325.html