CXX Test Framework для C ++ - PullRequest
       23

CXX Test Framework для C ++

1 голос
/ 06 апреля 2009

Насколько эффективна среда тестирования CXX, учитывая, что вы пишете тестовые примеры вокруг написанного вами кода. Любая ошибка в коде также может быть переведена в ошибку в коде модульного теста? Разве это не что-то вроде двух негативов, создающих позитив?

Кроме того, время и усилия, потраченные на CXX, по крайней мере равны, если не больше, чем усилия по написанию кода.

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

С другой стороны, если вы считаете, что это полезно, просите меня просветить :).

Ответы [ 4 ]

4 голосов
/ 08 апреля 2009

Google предлагает фантастическую платформу для тестирования C ++, которую я использовал ... Я никогда не использовал никакую другую платформу для тестирования C ++, и у меня был ограниченный опыт работы с Junit, и я смог поднять это очень быстро, так как документация хорошая. Важно использовать хорошую платформу для тестирования, потому что тестирование слишком важно, чтобы от него отказываться из-за разочарования в этой среде. Вот ссылка:

http://code.google.com/p/googletest/

Надеюсь, это поможет!

2 голосов
/ 06 апреля 2009

Я использую cxxtest. Регрессивное тестирование - это дорогостоящая задача, которую мы используем только для проверки наших программных библиотек, которые обеспечивают независимый от платформы уровень для наших приложений. Это делается для того, чтобы все изменения не повлияли на стабильность кода, поскольку так много приложений и проектов и зависели от них.

Мы соединяем cxxtest с анализом покрытия, чтобы обеспечить достаточность покрытия тестами, а также с CruiseControl для его автоматизации.

Но мы не делаем это для приложений. Слишком много усилий.

Создать тестовое приложение так же сложно, как написать саму всю библиотеку. Я согласен, что вам нужно решить, стоит ли это того.

Я думаю, что Джоэлу тоже есть что сказать по этому поводу: http://www.joelonsoftware.com/items/2009/01/31.html

2 голосов
/ 06 апреля 2009

CXX не очень активен, и написание юнит-теста обычно требует больших усилий. Но когда приходит первый рефакторинг, вы очень благодарны за потраченные усилия.

Я использовал Boost.Test & CPPUNIT. Я бы предпочел немного Boost.Test, но да, вы должны писать свои собственные проекты, файлы и т. Д.

Если вы знаете инструмент для создания вашего скелета из вашего кода, я весь в ушах. :)

Я бы посоветовал вам попробовать Boost.Test и CPPUNIT. Если вы думаете, что есть лучшее, это даст вам хорошие возможности противостоять CXXUNIT, поскольку вы будете предлагать альтернативы.

0 голосов
/ 18 апреля 2015

Я предпочитаю тестовые рамки только для заголовков, вот две из них: TUT и Catch . Я использовал TUT ранее в нескольких проектах и ​​обнаружил Catch не так давно.

1) TUT - Структура модульного тестирования шаблона C ++

TUT - это небольшая и портативная среда для модульного тестирования на C ++.

  • TUT очень переносим, ​​независимо от того, какой компилятор или ОС вы используете.
  • TUT состоит только из заголовочных файлов. Библиотеки не требуются, развертывание никогда не было проще.
  • Пользовательский интерфейс репортера позволяет интегрировать TUT практически с любой IDE или инструментом в мире.
  • Поддержка многопроцессного тестирования (ведется тестирование взаимоблокировок и тайм-аутов).
  • TUT бесплатен и распространяется по лицензии, подобной BSD.
  • Тесты организованы в именованные тестовые группы.
  • Регрессия (все тесты в приложении), выполнение одной группы или одного теста.
  • Чистый C ++, без макросов!

2) Catch - Современный C ++ - собственный, только заголовочный, фреймворк для юнит-тестов, TDD и BDD

Что за улов?

Catch означает C ++ Automated Test Cases в заголовках и является мульти-парадигмальная автоматизированная среда тестирования для C ++ и Objective-C (и, может быть, с). Он полностью реализован в виде набора заголовочных файлов, но упакован в один заголовок для дополнительного удобства.

...