В нашем проекте у нас есть сотни модульных тестов для некоторых конкретных модулей (около 60 модулей), и мы используем googletest.Чтобы не иметь так много исполняемых файлов в каталоге bin нашего проекта, мы компилировали наши модульные тесты, не связывая их.Мы также создали файлы * .unit_dep для каждого файла модульного теста, в котором мы указываем все зависимости для компоновщика.В конце мы написали простую программу, которая открывает эти файлы unit_dep, во время выполнения компилирует наши модульные тесты в разделяемые библиотеки, затем динамически загружает эти библиотеки с помощью dlopen () и выполняет их, вызывая функцию main () библиотеки googletest.После окончания тестирования мы удаляем все временные файлы * .so.Преимущество в том, что у нас есть только один исполняемый файл, который запускает все тесты.За создание общих библиотек придется заплатить немного времени.