Существует ли библиотека модульного тестирования C ++, похожая на NUnit? - PullRequest
5 голосов
/ 10 сентября 2009

Нам нужно перенести жгут модульного тестирования, разработанный с C # и NUnit на C ++, работающий на Red Hat Linux .

Мы хотим минимизировать усилия по миграции.

Мы читаем такие ресурсы, как:

http://gamesfromwithin.com/exploring-the-c-unit-testing-framework-jungle

Но мы не видим ничего похожего на NUnit.

Ответы [ 10 ]

9 голосов
/ 10 сентября 2009

Рассматривали ли вы использование CppUnit ?

Вот обзор структур модульного тестирования для C ++ .

7 голосов
/ 10 сентября 2009

Мы используем Google Mock и Google Test . Я никогда не использовал NUnit, но не могу комментировать, насколько он похож на NUnit.

6 голосов
/ 11 сентября 2009

А есть Boost.Test .

4 голосов
/ 23 декабря 2009

Расширение до Ответ Марка Бесси : мне действительно нравится cxxTest , потому что это просто набор заголовочных файлов C ++ и сценариев Perl. Пока у вас есть компилятор C ++ и Perl, он будет работать практически на любой системе. Он также имеет функции для интеграции с вашей IDE (хотя я не использовал их).

Кроме того, вот хорошая статья Изучение среды модульного тестирования C ++ Jungle . Этот пост потенциально устарел (около 2004 г.), но содержит большое описание возможностей и простых примеров, использующих каждую из следующих структур модульного тестирования C ++:

  • CppUnit
  • Boost.Test
  • CppUnitLite
  • NanoCppUnit
  • Unit ++
  • CxxTest
4 голосов
/ 22 ноября 2009

К сожалению, вы не найдете ничего похожего на NUnit. Поскольку C ++ не обладает такой же способностью к сильному отражению, процесс определения тестов должен быть несколько более явным, чем использование атрибутов, как в NUnit.

Мне нравится cxxtest , потому что он прост в настройке и не требует ручной регистрации теста.

3 голосов
/ 11 сентября 2009

Я использую Boost.Test . Раньше я использовал CppUnit , но обнаружил, что он работает способом Java / Junit, а не способом C ++. Например, используя методы настройки и демонтажа вместо конструкторов и деструкторов. Также поддержка Test Case / Fixture была немного трудоемкой, поскольку C ++ не поддерживает рефлексию.

Я обнаружил, что Boost.Test лучше соответствует коду C ++, который я тестировал. Это также намного мощнее. Через некоторое время я перенес все свои тесты CppUnit в Boost.Test, это заняло около суток, и я не оглядывался назад.

Насколько я знаю, человек, стоящий за cppunit, также написал cxxunit , что более похоже на C ++.

3 голосов
/ 11 сентября 2009

Я рекомендую вам попробовать UnitTest ++:
http://unittest -cpp.sourceforge.net / UnitTest ++. HTML

Я не знаю, похож ли он на NUnit, но он мощный, элегантный и простой в использовании.

2 голосов
/ 22 ноября 2009

В блоке есть относительно новый ребенок по имени WinUnit . У меня не было времени попробовать это самому, но это может стоить посмотреть.

2 голосов
/ 22 ноября 2009

Googletest очень похож на xUnit. Googlemock - безусловно, лучшая фреймворк для C ++. Библиотеки являются кроссплатформенными, имеют отличную документацию и активную пользовательскую базу. Все, что вам нужно, это совместимый компилятор C ++, который может обрабатывать шаблоны.

Майкл Фезерс (Michael Feathers), первоначальный автор CppUnit, теперь рекомендует CppUnitLite, который представляет собой базовую платформу. Однажды я угостил его радостями Googlemock на ACCU 2010 Я надеюсь, что он примет это: -)

1 голос
/ 17 октября 2009

Есть хороший, называемый CPPUnit . Он начал свою жизнь как порт JUnit для C ++, автор Michael Feathers. Я работал с этим, и это здорово. Обратите внимание, что юнит-тестирование в C ++ сложнее, чем в других языках.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...