GoogleTest по сравнению с CppUnit: факты

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

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

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

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

Спасибо!

63
задан 28 October 2011 в 14:32

3 ответа

Если Вы не посмотрели xUnit ++ , я сделал его конкретно, потому что я был недоволен тем, что было доступно (включая gtest). Большая часть Вашего списка поддерживается, и в противном случае если бы это, "должен иметь" функцию, я, вероятно, был бы готов добавить его.

4
ответ дан 31 October 2019 в 13:01

Это - преимущества, которые я вижу. Существует несколько исполнителей тестов GUI:

  1. https://github.com/ospector/gtest-gbar
  2. https://github.com/SandyChapman/gtest-runner-qt

я использовал первый, и он работает вполне прилично, хотя это находится в разработке и нуждается в некоторой работе. Не знайте, существуют ли другие опции.

4
ответ дан 31 October 2019 в 13:01

Если Вы используете более старую версию gcc компилятора или если Ваш код при тестовых прогонах на vxWorks (или VxSim) у Вас мог бы быть лучший шанс с cppUnit, чем платформа Googletest.

, С другой стороны, другой функцией googletest платформы является доступность 3 разных уровней установки/разрушения:

  • на программу
  • на тестовый сценарий (или тестовая группа)
  • на отдельные тестовые экземпляры

Не уверенный, если это поддерживается в cppUnit, но это могло бы прибыть очень удобное, особенно с унаследованными системами.

кроме того, существует googletest плагин для Eclipse CDT.

7
ответ дан 31 October 2019 в 13:01

Другие вопросы по тегам:

Похожие вопросы: