2009-09-10 2 views
5

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

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

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

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

Но мы не видим ничего подобного NUnit.

ответ

4

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

Также, здесь хорошая статья Exploring the C++ Unit Testing Framework Jungle. Это сообщение является потенциально из даты (около 2004 г.), но дает большой обзор возможностей & прямо вверх примеры, использующие каждый из следующих C++ рамок модульного тестирования:

  • CppUnit
  • Boost.Test
  • CppUnitLite
  • NanoCppUnit
  • Unit ++
  • CxxTest
7

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

9

Считаете ли вы использование CppUnit?

Описание unit testing frameworks for C++.

+0

Да, я немного смущен - cppunit - это первое, что в этом списке вы связали. cppunit и NUnit являются частью семейства xunit (и оба изначально были перенесены из JUnit). – Cascabel

+0

... так должно быть идеальное совпадение, не так ли? Насколько я знаю, CppUnit является ведущим портом JUnit для C++ (или хотя бы одним из них). –

3

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

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

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

1

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

2

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

Michael Feathers, автор оригинала CppUnit, теперь рекомендует CppUnitLite, который представляет собой оболочку из голых костей. Как только я поправился с радостями Googlemock в ACCU 2010, я надеюсь, что он его обнял :-)

4

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

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

2

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

Смежные вопросы