I need to be able to check how well my C++ code covered by unit test in critical places. I'm using Clion as IDE based on Cmake project structure (not sure if something else supported). Is there any ways to get code coverage info with Clion?
How to see code coverage in Clion
5.4k views Asked by silent_coder At
2
There are 2 answers
0
uvsmtid
On
It is possible with the latest vanilla versions of CLion (e.g. 2020.1.1) - no plugins required.
DETAILS
See official doc.
For example, on Linux (Fedora 31):
Depending on compiler, ensure CLion picks the right toolchain:
Even though
CMakeLists.txtsets compiler for the build, it may disagree with the one chosen by IDE to show the coverage (something to be improved).Obviously, install necessary tools outside of IDE and ensure their versions match:
sudo dnf install clang llvm # ... sudo dnf update
gcc
# CMakeLists.txt
set(CMAKE_C_COMPILER cc)
set(CMAKE_CXX_COMPILER c++)
set(COMPILE_FLAGS "--coverage")
set(CMAKE_EXE_LINKER_FLAGS "--coverage")
File / Settings... / Build, Execution, Deployment / Toolchain
clang
# CMakeLists.txt
set(CMAKE_C_COMPILER clang)
set(CMAKE_CXX_COMPILER clang++)
set(COMPILE_FLAGS "-fprofile-instr-generate -fcoverage-mapping")
set(CMAKE_EXE_LINKER_FLAGS "-fprofile-instr-generate")
File / Settings... / Build, Execution, Deployment / Toolchain
Related Questions in C++
- C++ using std::vector across boundaries
- Linked list without struct
- Connecting Signal QML to C++ (Qt5)
- how to get the reference of struct soap inherited in C++ Proxy/Service class
- Why we can't assign value to pointer
- Conversion of objects in c++
- shared_ptr: "is not a type" error
- C++ template using pointer and non pointer arguments in a QVector
- C++ SFML 2.2 vectors
- Lifetime of temporary objects
- I want to be able to use 4 different variables in a select statement in c ++
- segmentation fault: 11, extracting data in vector
- How to catch delay-import dll errors (missing dll or symbol) in MinGW(-w64)?
- How can I print all the values in this linked list inside a hash table?
- Configured TTL for A record(s) backing CNAME records
Related Questions in UNIT-TESTING
- How to write tests for classes with inheritance
- PHPunit call magic methods
- Convert IEnumerable to IObservable with variable Period
- How to a run specific code before & after each unit test in Python
- Unit testing a class A that derives from an abstract class B
- Is there another way to unit test business logic in mvc
- Some of my tests show prepended with junit.framework
- Selenium Driver Service not found exception
- Can not convert from Class<PowerMockRunner> to Class<? extends Runner>
- AngularJS Unit Testing - multiple mocks and providers
- How to use Sinon.js FakeXMLHttpRequest with superagent?
- Get Mock with AutoMock.Create<>()
- Mock service that takes unitOfWork in constructor
- Cleanest method for creating a pytest test fixture that takes in dynamic text data
- g++ 5.1.0 not building project, clang shows unknown error
Related Questions in C++11
- C++ using std::vector across boundaries
- Using QPointer and QObject::connect with C++11
- Using std::vector<> and std::shared_ptr<> should cause error
- invoking function for each variadic template arguments and passing the result as constructor arguments
- Different behavior of async with Visual Studio 2013(Windows8.1) and GCC 4.9(Ubuntu14.10)
- Whether to use T const& or T&&
- C++ IRC Bot Buffer Error
- Downcast from a container of Base* to Derived* without explicit conversion
- Assigning values in a vector in non-sequential order
- Can I use C++11 list-initializer syntax for vectors with variables?
- is it fine to use auto keyword in function parameter?
- Variadic template method and std::function - compilation error
- Clustering on Graph (using Boost Graph Library)
- libc++ difference between vector::insert overloads
- Cannot convert argument1 to const char
Related Questions in CODE-COVERAGE
- Properties file exclude multiple paths
- Which code coverage tool will be helpful in Xcode for Swift projects?
- Visual studio does not exist in the namespace, but reference is added
- Sonar, Multiple Coverage Tools overwriting each other
- How to generate Code Coverage report of Instrumentation test cases in Android Studio
- Running flask server, nosetests and coverage
- Is it possible to merge coverage data from two executables with gcov/gcovr?
- How to check code coverage with JaCoCo agent?
- Getting jacoco report from cucumber tests with gradle
- PHPStorm exclude Tests from coverage percentage
- Coverage of NodeJS using Karma
- OpenCover missing PDBs exception
- GCOV Cross Profiling: __gcov_flush() does not flush coverage data for shared libraries
- How could I get code coverage for individual tests in Java
- Roslyn - dynamic (runtime) flow
Related Questions in CLION
- GDB can't access/step into file for debugging
- CMake with CLion
- CLion IDE doesn't recognize my C symbols
- Clion error cmake python embedded
- Attaching a different compiler other than GCC to Clion IDE on Windows
- Implicit this parameter in GDB
- the fatal error "fstream.h" file not found happen in Clion?
- Push failed in clion
- Throwing exception and it's messages
- MinGW + SFML giving error code
- How to add a hexadecimal watch in CLion?
- How can I export to a vsproject on my mac (C++)?
- Why does cmake give undefined references for netcdf with cygwin on windows?
- How to see code coverage in Clion
- Displaying assembly at CLion
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)


There is no such feature in CLion for now. The feature request exists. Also we are unaware of any existing plugin for code coverage in CLion.