GoogleTest против CppUnit: Факты

В процессе создания нашей среды тестирования C++ на следующие годы мы выбрали GoogleTest и CppUnit. У меня есть некоторый опыт работы с обоими, и я отдаю предпочтение GoogleTest. В любом случае, чтобы убедить своего начальника, мне нужны некоторые факты, поэтому я немного почитал в Интернете, включая руководства, вики-страницы и некоторые источники. Я пришел к списку преимуществ GoogleTest и одному преимуществу CppUnit (графические прогоны тестов). Здесь они упорядочены по воспринимаемой полезности:

  • INSTANTIATE_TEST_CASE_P для создания тестового случая с любым набором параметров, включая декартовы продукты
  • FRIEND_TEST для тестирования приватных членов класса (для всего унаследованного кода)
  • превращение ассертов в точки останова
  • нефатальные ассерты
  • интеграция googlemock "из коробки"
  • автоматическое обнаружение тестов, нет необходимости их перечислять
  • тесты могут быть отключены и включены
  • тесты для запуска могут быть выбраны по шаблонам имен
  • тесты с параметрами значения/типа
  • пользовательские
  • тесты смерти
  • гораздо более богатый набор утверждений
  • утверждения типов
  • утверждения на подпрограммах
  • дополнительная отладочная информация может быть добавлена к утверждениям с помощью <<
  • RecordProperty выводит последнее значение свойства на XML-вывод
  • SCOPED_TRACE помогает понять контекст отказа утверждения, происходящего внутри подпрограммы или цикла.
  • xUnit XML вывод, может быть показан Jenkins сразу без XSLT преобразования между ними
  • поддерживает пользовательские типы принтеров
  • время, затрачиваемое на индикацию теста (я подозреваю, что это возможно и с CppUnit, но пока не разобрался)
  • API слушателя тестовых событий (пользовательские плагины)
  • перетасовка тестов
  • без исключений и RTTI

Правильно ли я понимаю, что все вышеперечисленное не поддерживается CppUnit? Есть ли полезная функция GoogleTest, недоступная в CppUnit, которую я упускаю?

И последнее, но не менее важное: Есть ли какие-нибудь хорошие возможности CppUnit, которых не хватает GoogleTest?

Спасибо!

63
задан EstuansInterius 28 October 2011 в 10:32
поделиться