서브유닛(형식)

Subunit (format)

SubUnit은 유닛 테스트와 테스트 하니스 간의 통신을 가능하게 하는 테스트 결과의 스트리밍 프로토콜입니다.이것은 2005년 Robert Collins에 의해 유닛 테스트용으로 개발되었습니다.서브유닛에는 Python, C, C++ 및 Shell용 서브유닛 스트림 및 언어 바인딩을 처리하는 명령줄 필터가 포함되어 있습니다.바인딩은 다른 언어로 쓰기 쉽습니다.

SubUnit을 사용하면 많은 유용한 작업을 쉽게 수행할 수 있습니다.

  • 테스트 집약:개별적으로 실행되는 테스트를 조합하여 함께 보고/표시할 수 있습니다.
  • 테스트 보관: 테스트 실행을 기록하고 나중에 재생할 수 있습니다.
  • 테스트 격리:크래시 또는 상호 작용이 불량할 수 있는 테스트는 개별적으로 실행한 후 집약할 수 있습니다.
  • 그리드 테스트: SubUnit은 실시간으로 보고되는 분산 머신에서 테스트 실행을 수행하기 위해 필요한 시리얼화 및 시리얼화 해제 역할을 할 수 있습니다.

버전

프로토콜에는 크게 두 가지 개정 사항이 있습니다.버전 1은 거의 사람이 읽을 수 있는 수준이었지만, 고도의 병렬 테스트에 관한 한 중대한 결함이 있었습니다.즉, 검출과 실행을 병행할 여지가 없었기 때문에 멀티플렉싱 시에 상당한 버퍼링이 필요하며, 바이트가 파손되면 스트림 전체가 잘못 해석될 수 있습니다.버전 1.1에서는 바이너리 스트림의 캡슐화가 추가되어 일부 문제가 완화되었지만 코어는 남아 있었습니다.

버전 2는 버전 1의 많은 장점을 공유합니다.버전 1은 일반 텍스트 스트림(빌드 시스템 등)에 삽입할 수 있으며 xUnit 스타일의 테스트 실행을 모델링합니다.또한 버전 1 - 버전2의 많은 문제를 수정하여 과도한 버퍼링 없이 다중화할 수 있으며(2개의 프로세스가 동시에 같은 스트림에 쓰거나 스트림 제너레이터에서 버그가 발생하는 경우 등) 파손된 스트림을 처리하기 위한 복구 메커니즘이 적절하게 정의되어 있습니다.

사용 예

SubUnit 일반 포맷의 예를 다음에 나타냅니다.

시간을: 2016-03-24 21:05:38.652075Z 시험: 마이 테스트.샘플 테스트 케이스.테스트 실행  실패.: 마이 테스트.샘플 테스트 케이스.테스트 실행  [      트레이스백 (대부분의. 최근. 불러 지난): 파일 "/media/windows/dev/http/qaworkspace/src/mytest.py", 선     11, 에 테스트 실행 자신.동일.(렌(s), 4, '잘못된 길이') Assertion Error(어설션 오류): 틀렸어 길이  ]  시간을: 2011-05-2322:49:38.858163Z 

외부 링크