Гуглтесты в исполняемой или статической / динамической библиотеке? - PullRequest
0 голосов
/ 09 октября 2011

Google рекомендует связать googletest с исполняемым файлом и выполнять тесты с помощью аргументов командной строки.

Я работал с C # и средами модульного тестирования Java и предпочитаю, чтобы исполнители тестов постоянно выполняли тесты в нескольких библиотеках / компонентах.

  • Как люди с большими базами кода (многие библиотеки) управляют своими googletests?
  • У вас есть несколько исполняемых файлов? Вы используете сценарии оболочки и т.д?
  • А как вы работаете с результатами теста?

1 Ответ

2 голосов
/ 15 февраля 2012

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

...