Покрытие кода C++, вызываемого через Pybind из теста PythonC++

Программы на C++. Форум разработчиков
Anonymous
Покрытие кода C++, вызываемого через Pybind из теста Python

Сообщение Anonymous »

В настоящее время работаю с устаревшей кодовой базой, которая создает ряд модулей Pybind и тестирует большую часть открытого кода C++ с помощью тестов Python.
Можно ли определить покрытие кода C++ через тесты Python? Насколько я понимаю, покрытие C++ заключается в том, что вам нужен скомпилированный исполняемый тестовый файл с объектными файлами, который можно запустить для сбора данных о покрытии (результирующие файлы gcda). Проблема здесь в том, что тесты Python не вызывают исполняемый файл теста, они используют скомпилированные файлы .so через модуль Pybind.
Можно ли генерировать данные покрытия через файлы Pybind и .so?
Если это поможет, мы используем Bazel, и я создал простую среду песочницы с базовой целью pybind_library и py_test. цель. Я могу скомпилировать pybind_library (который обертывает цель cc_binary) с флагами покрытия и сгенерировать файлы gcno, но когда цель py_test выполняется, она не генерирует никаких gcda, но определенно использует скомпилированную библиотеку .so.

Подробнее здесь: https://stackoverflow.com/questions/772 ... ython-test

Вернуться в «C++»