跳转到主要内容

使用pytest的运行器来发现和执行C++测试

项目描述

Supported Python versions version anaconda ci black

使用 pytest 运行器发现并执行C++测试。

支持Google TestBoost.TestCatch2

这带来了许多好处

  • 允许您使用单个命令在多语言项目中运行所有测试;

  • 使用pytest-xdist插件并行执行C++测试;

  • 使用--junitxml选项生成包含所有测试套件结果的单一统一xml文件;

  • 使用标准测试过滤功能(例如通过文件名、目录、关键字等)过滤要运行的测试,例如使用-k选项等;

安装

使用pip进行安装

$ pip install pytest-cpp

用法

$ pytest

安装完成后,pytest运行将自动检测并运行在可执行文件中找到的测试,包括Google、Boost或Catch2测试套件。

配置选项

以下是可以放入pytest配置文件中的与pytest-cpp相关的选项:

cpp_files

您可以使用cpp_files ini配置选项配置要测试的套件文件

[pytest]
cpp_files = test_suite*

默认情况下匹配test_**_test可执行文件。

cpp_arguments

C++测试的参数可以通过cpp_arguments ini配置选项提供。

例如

[pytest]
cpp_arguments =-v --log-dir=logs

您可以直接在命令行中使用pytest的-o选项更改此选项

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

重要:不要传递过滤参数(例如--gtest_filter),因为这将与插件功能冲突并表现不正确。

要过滤测试,请使用标准的pytest过滤功能(例如-k)。

cpp_ignore_py_files

此选项默认为True,并配置插件忽略其他情况下与cpp_files选项匹配的*.py文件。

如果您的C++可执行文件以*.py扩展名结尾,请将其设置为False

[pytest]
cpp_ignore_py_files = False

cpp_harness

此选项允许使用通过在控制台上包装测试二进制文件调用它们的工具

[pytest]
cpp_harness = valgrind --tool=memcheck

cpp_harness_collect

此选项允许在测试收集期间在控制台上包装测试二进制文件时使用工具或仿真器(如wine或qemu)

可以与cpp_harness结合使用,在交叉编译目标中运行仿真器中的二进制文件,例如wine或qemu

[pytest]
cpp_harness_collect = qemu-x86_64 -L libs/

[pytest]
cpp_harness_collect = qemu-x86_64 -L libs/
cpp_harness = qemu-x86_64 -L libs/

变更日志

请参阅变更日志

支持

欢迎所有功能请求和错误报告,请确保将功能请求和错误添加到问题页面

项目详情


下载文件

下载适合您平台文件的文件。如果您不确定该选择哪一个,请了解更多关于安装包的信息。

源代码分发

pytest_cpp-2.6.0.tar.gz (465.5 kB 查看哈希值)

上传时间 源代码

构建分发

pytest_cpp-2.6.0-py3-none-any.whl (15.1 kB 查看哈希值)

上传时间 Python 3

由以下组织支持