В процессе создания нашей среды тестирования 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?
Спасибо!
задан EstuansInterius 28 October 2011 в 10:32
поделиться