Need help with example-cpp11-cmake?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

codecov
129 Stars 53 Forks MIT License 48 Commits 0 Opened issues

Services available

!
?

Need anything else?

Contributors list

Codecov CI CMake g++ cpp11 lcov Example

Travis CI logo Codecov logo FOSSA Status

Build Status codecov MIT License

The goal of this project is to build project with following tools: * C++ version:

C++11
* Build system:
CMake
* C++ compiler:
g++
or Visual Studio * Libraries:
STL
only * Code coverage report:
lcov
and
OpenCppCoverage
(note: it should show the code coverage is below 100%) *
CodeCov
(code coverage is measured by CodeCov). * Source: multiple files

Special Thanks

Goes to Richel Bilderbeek for inspiration and all work on Travis CI tutorials. Here is a link to a project with the same structure (without

lcov
), and here is a list of all his Travis configuration examples.

Prerequisites

To build the project you need to install

CMake
. (Install instructions) To display a code coverage report in the console, install
lcov
. (
Download lcov
,
Instructions
)

Guide

  1. Compile with code coverage instrumentation enabled (GCC).
  2. Execute the tests to generate the coverage data.
  3. (Optionally) generate and customize reports with
    lcov
    .
  4. Upload to CodeCov using the bash uploader.

Travis Setup Using lcov

Add to your

.travis.yml
file: ```yml addons: apt: packages: lcov

after_success:

Create lcov report

  • lcov --capture --directory . --output-file coverage.info
  • lcov --remove coverage.info '/usr/*' --output-file coverage.info # filter system-files
  • lcov --list coverage.info # debug info # Uploading report to CodeCov
  • bash <(curl -s https://codecov.io/bash) -f coverage.info || echo "Codecov did not collect coverage reports" ```

Travis Setup without lcov

By default the bash uploader processes the coverage data using gcov when no file is supplied.

yml
after_success:
- bash 

Caveats

Private Repos

Add to your

.travis.yml
file:
yml
after_success:
  - bash 

Example details

This repo can serve as the starting point for a new project. The following is worth noticing: 1. Use of a build script instead of putting the commands into

.travis.yml
- Allows local testing - Allows usage of
set -e
to error out with meaningfull messages on any command failure 2. Separate testing source tree - Allows to easily enable/disable testing - Allows usage in parent projects (you don't want to build the tests if you are consumed) - You may want to exclude coverage of test files which is easier when they are in a separate folder. Remember to use full paths for patterns (like
'*/tests/*'
) 3. Use of travis cache to cache manually build 3rd-party dependencies (like boost) - Speeds up build - More can be added (e.g.
ccache
) - Those need to be excluded from coverage info too

Authors

License

This project is licensed under the MIT License - see the LICENSE file for details.

  1. More documentation at https://docs.codecov.io
  2. Configure codecov through the
    codecov.yml
    https://docs.codecov.io/docs/codecov-yaml

We are happy to help if you have any questions. Please email our Support at [email protected]

FOSSA Status

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.