Skip to content

Latest commit

 

History

History
133 lines (85 loc) · 3.58 KB

File metadata and controls

133 lines (85 loc) · 3.58 KB

pytest-cpp

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

Supported Python versions version anaconda ci coverage black

Supports Google Test, Boost::Test, and Catch2:

https://raw.githubusercontent.com/pytest-dev/pytest-cpp/master/images/screenshot.png

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.;

Usage

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

Configuration Options

cpp_files

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

[pytest]
cpp_files = test_suite*

By default matches test_* and *_test executable files.

cpp_arguments

New in version 1.1.

Arguments to the C++ tests can be provided with the cpp_arguments ini configuration option.

For example:

[pytest]
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'

cpp_ignore_py_files

New in version 1.2.

This option defaults to True and configures the plugin to ignore *.py files that would otherwise match the cpp_files option.

Set it to False if you have C++ executable files that end with the *.py extension.

[pytest]
cpp_ignore_py_files = False

cpp_harness

New in version 1.3.

This option allows the usage of tools that are used by invoking them on the console wrapping the test binary, like valgrind and memcheck:

[pytest]
cpp_harness = valgrind --tool=memcheck

Install

Install using pip:

$ pip install pytest-cpp

Changelog

Please consult CHANGELOG.

Support

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