2009-05-27 11 views
13

Я много читал о модульных тестах и ​​тестировании.Тестирование модулей в C++

В последнее время я также прочитал тестовый код модуля java.

Я, однако, предпочитаю разрабатывать в Qt. Таким образом, я разобрал «модульное тестирование в C++» и нашел множество информации о различных модулях модульного тестирования, доступных для C++.

Однако я не смог найти надежное сравнение различных фреймворков.

Итак, я смотрю на сообщество SO, чтобы вести меня через выбор того, что может быть «наилучшим» модулем тестирования модулей для C++.

Кроме того, если у кого-то были особые комментарии относительно TDD в Qt (особенно с использованием Qt-Creator), то они более чем приветствуются.

+0

Поиск SO - существует несколько вопросов для этой темы. Голосование закрывается. – Gishu

+6

О, но ни один из них не касается аспекта Qt. – jrharshath

ответ

17

Обычно используют Boost, но если вы используете Qt, их QtTestLib может быть лучшим выбором.

+0

только то, что я искал :) – jrharshath

+0

Я не знаю о Boost так много, но самый большой недостаток QTestLib заключается в том, что он не является надежным с сбоями - например, если ваш блок выходит из строя, весь ваш пакет падает, а затем отчет будет трудно разобрать (если вы полагаетесь на эту функцию, например, в автоматической тестовой отчетности). – rasjani

1

Boost обычно является хорошим выбором, и он содержит испытательную платформу, Boost Test Library. Я использовал его для небольших тестовых примеров, и он сделал то, что я ожидал, но я не использовал его широко, как в TTD.

2

"XUnit" семейство каркасов для тестирования, как правило, довольно твердый (JUnit, NUnit, и т.д.). Я не использовал его сам, но есть порт JUnit для C++:

http://sourceforge.net/projects/cppunit

+2

cppUnit очень прост в использовании и работает - мы используем его в коммерческой среде, тестируя более 50 отдельных Dll, каждый из которых имеет несколько тысяч тестовых примеров. Он доказал свою надежность и гибкость. – Thomi

2

Существует table comparing all (?) the C++ unit test frameworks, доступный из википедии.

Существует также старый comparison of C++ unit test frameworks. Я не думаю, что он не был обновлен, поэтому я упоминаю его как дополнение, поскольку он более аргументирован, чем таблица. Он охватывает: CppUnit, CppUnitLite, Boost.Test, NanoCppUnit, Unit ++, CxxTest, особенно он не охватывает Google C++ framework.

+1

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

5

Я бы порекомендовал doctest (созданный мной) - это самый легкий во время компиляции из всех популярных тестовых фреймворков. Он также является прямым конкурентом Catch, который в настоящее время является наиболее используемым каркасом - проверьте отличия в FAQ