Измерьте охват подпроцессов - PullRequest
0 голосов
/ 08 мая 2020

Итак, у меня есть проект, протестированный с помощью pytest и использующий модуль pytest-cov для отчета о покрытии.

Часть кода включает в себя загрузку и настройку, и канонический способ запуска - запуск через сценарий оболочки . Текущие модульные тесты используют модуль subprocess для тестирования запуска этого сценария оболочки на имитируемых данных. Я хотел бы получить отчет о коде против покрытия, и я специально пытаюсь избежать

1) Сильно модифицируя оболочку для поддержки тестового сценария. Кроме того, существует риск выполнения 2).

2) Запуск кода ускорения вне оболочки (например, путем разветвления процесса и запуска кода напрямую), поскольку я хочу, чтобы эти тесты были максимально реалистичными c по возможности.

Есть ли какой-нибудь (канойский, Pythoni c) способ распространения коллекции покрытий на все подпроцессы, даже при запуске с использованием subprocess.Popen? Я могу легко решить проблему с помощью хака, так что это не то, что я ищу.

1 Ответ

0 голосов
/ 04 июня 2020

Это действительно работает из коробки. Причина, по которой я подумал, что это не сработало, заключалась в том, что сопоставления путей с томами Docker были неправильными, поскольку модули, загруженные подпроцессом, были привязаны к контейнеру. О покрытии сообщается только в том случае, если пути точно совпадают.

...