필자는 lcov (v1.13, OS X에서 컴파일러로 clang 사용)를 사용하여 테스트 스위트에 대한 코드 적용 범위를 생성하려고하고 있는데, 내가 해결할 방법을 모르는 문제. 너무 비슷한 질문이 있지만이 해결책을 찾지 못했습니다. 어떤 이유로, 기능/부재 선언이 도달로 표시되어 있지만, 같은 종류 아래 예에서 실행되지 않는다 (이 헤더에 인라인 방식의 정의이다)lcov는 함수 선언을 도달 할 수 있지만 적용 할 수없는 라인으로 표시합니다.
이 쓸모 광고 따르면 메트릭 렌더링, 그래서 각 선언을 LCOV_EXCL_LINE으로 표시하지 않고 문제를 해결할 수있는 방법이 있기를 바랍니다. 몸은 아니지만 예를 들면, 어떤 이상한 것은 정의는 소스 파일에서도 빨간색으로 표시되는 방법이다
-g -O0 -fno-inline -ftest-coverage -fprofile-arcs -fno-elide-constructors
: 사용
컴파일러 플래그는 꽤 표준
// header.h
class Foo {
void bar(); // ignored, marked as unreachable
}
// header.cpp
void Foo::bar() { // marked as red (reachable/not executed)
do_something(); // marked as covered
}
중요한 점이 있다면 소스 파일은 CMake의 테스트 장치에 정적으로 연결된 정적 라이브러리의 일부입니다. 내 자신의 질문에 대답
는