Use pytest's runner to discover and execute C++ tests
Clone or download
Latest commit 1c8bec0 Jun 19, 2018



Use pytest runner to discover and execute C++ tests.

Supported Python versions version anaconda ci coverage

Supports both Google Test and Boost::Test:

This brings several benefits:

  • Allows you to run all your tests in multi-language projects with a single command;
  • Execute C++ tests in parallel using pytest-xdist plugin;
  • Use --junitxml option to produce a single and uniform xml file with all your test suite results;
  • Filter which tests to run using standard test filtering capabilities, such as by file names, directories, keywords by using the -k option, etc.;


Once installed, when py.test runs it will search and run tests found in executable files, detecting if the suites are Google or Boost tests automatically.

You can configure which files are tested for suites by using the cpp_files ini configuration:


By default matches test_* and *_test executable files.

Additional arguments to the C++ tests can be provided with the cpp_arguments ini configuration.

New in version 1.1.

For example:

cpp_arguments=-v --log-dir=logs

You can change this option directly in the command-line using pytest's -o option:

$ pytest -o cpp_arguments='-v --log-dir=logs'


  • Python 2.7+, Python 3.4+
  • pytest


Install using pip:

$ pip install pytest-cpp


Please consult CHANGELOG.


All feature requests and bugs are welcome, so please make sure to add feature requests and bugs to the issues page!