#c #unit-testing #googletest
#c #модульное тестирование #googletest
Вопрос:
Google рекомендует ссылаться на googletest в исполняемый файл и выполнять тесты с помощью аргументов командной строки.
Я работал с фреймворками модульного тестирования C # и Java и предпочитаю, чтобы тестовые программы непрерывно выполняли тесты в нескольких библиотеках / компонентах.
- Как люди с большими кодовыми базами (многие библиотеки) управляют своими googletests?
- У вас есть несколько исполняемых файлов? Используете ли вы сценарии оболочки и т. Д.?
- И как вы работаете с результатами тестирования?
Ответ №1:
В нашем проекте у нас есть сотни модульных тестов для некоторых конкретных модулей (около 60 модулей), и мы используем googletest. Чтобы избежать большого количества исполняемых файлов в каталоге bin нашего проекта, мы скомпилировали наши модульные тесты, не связывая их. Мы также создали файлы *.unit_dep для каждого файла модульного теста, в котором мы указываем все зависимости для компоновщика.
В конце мы написали простую программу, которая открывает эти файлы unit_dep, во время выполнения компилирует наши модульные тесты в разделяемые библиотеки, затем динамически загружает эти библиотеки через dlopen() и выполняется путем вызова функции main() библиотеки googletest. После завершения тестов мы удаляем все временные файлы * .so.
Преимущество в том, что у нас есть только один исполняемый файл, который запускает все тесты. Цена, которую приходится платить, — это некоторое время на создание общих библиотек.