C++ 코드를 Travis CI + Coveralls로 커버리지 생성
본고에서는 C++ 의 코드에 대한 커버리지의 publish 까지의 작업을 힘들게 써 갑니다만, 문서 를 보는 한 다른 몇개의 언어에도 대응하고 있을 것 같습니다.
본인은 다음과 같이 Travis CI에 의한 CI 대응 및 커버리지 생성과 Coveralls에의 커버리지를 publish 했습니다.
배경
1. 우선 커버리지를 gcov로 출력할 수 있도록 한다
Coveralls 는 gcov 형식의 커버리지 파일을 요구하므로, 이것을 출력할 수 있도록(듯이) 합니다.
컴파일 시 옵션에 -coverage
를 부여하면 커버리지 수집을 위한 파일이 출력됩니다.
그런 다음 테스트를 실행하고 커버리지를 수집하려는 대상으로 좁히고 *.gcov
파일을 수집합니다.
덧붙여서 자신은 항상 커버리지 파일의 출력이 되는 것을 회피하기 위해 configure.ac
에 -coverage
AC_MSG_CHECKING([coverage option])
# --enable-coverage フラグを生やす
AC_ARG_ENABLE([coverage],
[AS_HELP_STRING([--enable-coverage],[generate coverage files])],
[],
[enable_coverage=no]
)
AC_MSG_RESULT([$enable_coverage])
# CXXFLAGS にオプション追加するか判別
if test "${enable_coverage}" = "yes"; then
CXXFLAGS="$CXXFLAGS -coverage"
fi
2. Coveralls에 리포지토리 등록
htps : // 코ゔぇ라 ls. 이오/ 로 이동하여 GitHub 계정으로 sign up 합니다. 로그인 후 "ADD REPOS"메뉴에서 커버리지 수집 대상 리포지토리를 등록합니다.
3. cpp_coveralls 도입
Coveralls에 바삭바삭하고 *.gcov
를 업로드하는 편리한 명령을 소개합니다. pip에서 도입 가능합니다.
$ pip install cpp-coveralls
4. coveralls 명령 시도
*.gcov
출력처나 소스 파일의 배치처 디렉토리의 편리함, coveralls 명령의 옵션을 배려할 필요가 나옵니다.
동작 확인을 위한 번거로움을 고려하여 Travis CI가 아닌 손 환경에서 --verbose
또는 --dryrun
를 붙여 coveralls 명령을 실행해 보면 좋을 것 같습니다.
또한 실제로 Coveralls 에 publish 하고 싶은 경우는 -t <token>
필요합니다.
5. .travis.yml에 coveralls 명령에 대한 설명을 부여합니다.
README에 따라 after_success:
에서 실행하는 것이 좋습니다. cpp_coveralls의 도입도 잊지 마세요!
6. Ikanji에 Coveralls에서 커버리지를 확인하십시오!
여기까지 오면 Coveralls에서 커버리지를 확인할 수 있게 될 것입니다. 자신이 한 예라면 아래와 같은 마무리가 되었습니다.
(거짓말・・・나의 커버리지, 너무 낮다!??)
htps : // 코ゔぇ라 ls. 이오/부이 lds/7007837
또한 PullRequest Build도 달려 주므로 그곳에서 확인하도록 해도 좋을지도 모릅니다.
AC_MSG_CHECKING([coverage option])
# --enable-coverage フラグを生やす
AC_ARG_ENABLE([coverage],
[AS_HELP_STRING([--enable-coverage],[generate coverage files])],
[],
[enable_coverage=no]
)
AC_MSG_RESULT([$enable_coverage])
# CXXFLAGS にオプション追加するか判別
if test "${enable_coverage}" = "yes"; then
CXXFLAGS="$CXXFLAGS -coverage"
fi
htps : // 코ゔぇ라 ls. 이오/ 로 이동하여 GitHub 계정으로 sign up 합니다. 로그인 후 "ADD REPOS"메뉴에서 커버리지 수집 대상 리포지토리를 등록합니다.
3. cpp_coveralls 도입
Coveralls에 바삭바삭하고 *.gcov
를 업로드하는 편리한 명령을 소개합니다. pip에서 도입 가능합니다.
$ pip install cpp-coveralls
4. coveralls 명령 시도
*.gcov
출력처나 소스 파일의 배치처 디렉토리의 편리함, coveralls 명령의 옵션을 배려할 필요가 나옵니다.
동작 확인을 위한 번거로움을 고려하여 Travis CI가 아닌 손 환경에서 --verbose
또는 --dryrun
를 붙여 coveralls 명령을 실행해 보면 좋을 것 같습니다.
또한 실제로 Coveralls 에 publish 하고 싶은 경우는 -t <token>
필요합니다.
5. .travis.yml에 coveralls 명령에 대한 설명을 부여합니다.
README에 따라 after_success:
에서 실행하는 것이 좋습니다. cpp_coveralls의 도입도 잊지 마세요!
6. Ikanji에 Coveralls에서 커버리지를 확인하십시오!
여기까지 오면 Coveralls에서 커버리지를 확인할 수 있게 될 것입니다. 자신이 한 예라면 아래와 같은 마무리가 되었습니다.
(거짓말・・・나의 커버리지, 너무 낮다!??)
htps : // 코ゔぇ라 ls. 이오/부이 lds/7007837
또한 PullRequest Build도 달려 주므로 그곳에서 확인하도록 해도 좋을지도 모릅니다.
$ pip install cpp-coveralls
*.gcov
출력처나 소스 파일의 배치처 디렉토리의 편리함, coveralls 명령의 옵션을 배려할 필요가 나옵니다.동작 확인을 위한 번거로움을 고려하여 Travis CI가 아닌 손 환경에서
--verbose
또는 --dryrun
를 붙여 coveralls 명령을 실행해 보면 좋을 것 같습니다.또한 실제로 Coveralls 에 publish 하고 싶은 경우는
-t <token>
필요합니다.5. .travis.yml에 coveralls 명령에 대한 설명을 부여합니다.
README에 따라 after_success:
에서 실행하는 것이 좋습니다. cpp_coveralls의 도입도 잊지 마세요!
6. Ikanji에 Coveralls에서 커버리지를 확인하십시오!
여기까지 오면 Coveralls에서 커버리지를 확인할 수 있게 될 것입니다. 자신이 한 예라면 아래와 같은 마무리가 되었습니다.
(거짓말・・・나의 커버리지, 너무 낮다!??)
htps : // 코ゔぇ라 ls. 이오/부이 lds/7007837
또한 PullRequest Build도 달려 주므로 그곳에서 확인하도록 해도 좋을지도 모릅니다.
여기까지 오면 Coveralls에서 커버리지를 확인할 수 있게 될 것입니다. 자신이 한 예라면 아래와 같은 마무리가 되었습니다.
(거짓말・・・나의 커버리지, 너무 낮다!??)
htps : // 코ゔぇ라 ls. 이오/부이 lds/7007837
또한 PullRequest Build도 달려 주므로 그곳에서 확인하도록 해도 좋을지도 모릅니다.
Reference
이 문제에 관하여(C++ 코드를 Travis CI + Coveralls로 커버리지 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/syu_cream/items/daf44009c631f617d7f7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)