2017-12-20 48 views
1

나는 CI 파이프 라인에 구축 할 Google Test 단위 테스트 도구를 사용하기 시작했습니다. 셸에서 실행되는 코드 적용 도구가 있으며 임계 값을 설정하고 작업을 파이프 라인에 추가 할 수 있습니까? 참고로어떻게 터미널에서 Google 테스트 스위트에서 C++ 코드 오버 헤드를 얻을 수 있습니까?

I는 NodeJS 배경 온 다음과 같이 파이프 라인을 사용

  1. 린터 (eslint)
  2. 단위 테스트 (자스민)
  3. 코드 커버리지 (이스탄불 따르면 & & 이스탄불 체크 -을 적용 범위)

제가 고심하고있는 비트는 세 번째 단계입니다. NodeJS에서 허용 가능한 임계 값을 설정할 수 있으며 충족되지 않으면 작업이 실패합니다.

내 C++ 코드에서이를 복제하려고합니다. 이것은 가능한가?

+0

gcov가 있지만 다소 제한된 도구입니다 (예 : 템플릿이나 예외에 대한 단서가 없음). 또한 제대로 작동하는 린터/코드 스타일 검사/코드 포맷 도구가 없습니다. 그래서 실제로 가능하지 않습니다. C++ 개발자가되어 고통 받고 있습니다 ... – VTT

답변

1

코드 커버리지는 사용하는 테스트 프레임 워크와 연결되지 않습니다.

Linux의 C++에서는 코드 적용 범위를 활성화하기 위해 특수 플래그로 소프트웨어를 컴파일해야합니다. g ++의 경우 인수 --coverage을 설정해야합니다 (모든 최적화를 비활성화하는 것도 좋습니다).

그런 다음 테스트 프로그램을 실행하면 많은 파일이 포함될 것입니다. 그런 다음 예를 들어, lcov.
lcov은 결과가있는 HTML 페이지를 만들 수 있지만 범위 분석의 총계도 stdout으로 인쇄합니다. 따라서 lcov을 실행하는 스크립트를 작성하고 출력을 필터링하고 측정 된 백분율에 따라 오류 또는 실패를보고해야합니다.

Btw, 범위가 충분한 지 여부를 정의하려면 lcov에 대한 제한을 설정할 수 있지만 HTML 출력의 배경색에만 사용됩니다.

이러한 각 주제에 대해 Stackoverflow에서 여러 가지 항목을 찾아서 어떻게 수행 할 수 있는지 알아보십시오.

관련 문제