В процессе настройки нашей платформы модульного тестирования C ++ на следующие годы мы включили в список GoogleTest и CppUnit . У меня есть некоторый опыт работы с обоими, и я предпочитаю GoogleTest. В любом случае, чтобы убедить моего босса, мне нужно фактов , поэтому я немного почитал в Интернете, включая руководства, вики-страницы и некоторые источники. Я придумал список преимуществ GoogleTest и одно преимущество CppUnit (графические тестеры). Здесь они упорядочены по воспринимаемой полезности:
- INSTANTIATE_TEST_CASE_P для создания тестового примера с любым набором параметров, который вы хотите, включая декартовы продукты
- FRIEND_TEST для тестирования участников частного класса (для всего унаследованного кода)
- превращение утверждений в точки останова
- несмертельные утверждения
- "из коробки" интеграция с Googlemock
- автоматическое обнаружение тестов, не нужно перечислять их
- тесты можно отключить и включить
- тесты для запуска могут быть выбраны с использованием шаблонов имен
- значение / тип параметризованных тестов
- пользовательские предикаты утверждают
- тесты на смерть
- гораздо более богатый набор утверждений
- тип подтверждения
- утверждение на подпрограммах
- дополнительная информация отладки может быть добавлена в утверждения, используя << </li>
- RecordProperty отправляет последнее значение свойства в вывод XML
- SCOPED_TRACE помогает понять контекст ошибки подтверждения, приходящей из подпрограммы или цикла.
- Вывод xUnit XML, может быть показан Jenkins сразу без преобразования XSLT между
- поддерживает принтеры нестандартных типов
- время, затрачиваемое на индикацию теста (я подозреваю, что это также возможно с CppUnit, но я еще не понял)
- API прослушивателя тестовых событий (пользовательские плагины)
- тест перетасовки
- без исключений и RTTI
Правильно ли я считаю, что все вышеперечисленное не поддерживается CppUnit? Есть ли полезная функция GoogleTest , недоступная в CppUnit, по которой я скучаю?
И последнее, но не менее важное: есть ли какие-нибудь приятные функции CppUnit, которых в GoogleTest не хватает ?
Спасибо!