Один из модулей модульного тестирования в C - это Check ; список фреймворков для модульного тестирования на C можно найти здесь и воспроизвести ниже. В зависимости от того, сколько стандартных функций библиотеки имеет ваша среда выполнения, вы можете или не сможете использовать одну из них.
AceUnit
AceUnit (Advanced C и Embedded Unit) позиционирует себя как удобную среду модульного тестирования кода C. Он пытается имитировать JUnit 4.x и включает в себя возможности, подобные отражению. AceUnit может использоваться в средах с ограниченными ресурсами, например, для разработки встроенного программного обеспечения, и, что важно, он отлично работает в средах, где вы не можете включить один стандартный заголовочный файл и не можете вызвать одну стандартную функцию C из библиотек ANSI / ISO C. У этого также есть порт Windows. Он не использует вилки для захвата сигналов, хотя авторы проявили интерес к добавлению такой функции. Смотрите домашнюю страницу AceUnit .
GNU Autounit
Во многом по той же схеме, что и Check, включая разветвление для запуска модульных тестов в отдельном адресном пространстве (фактически, первоначальный автор Check заимствовал эту идею из GNU Autounit). GNU Autounit широко использует GLib, а это означает, что для линковки и тому подобного необходимы специальные опции, но это может не быть для вас большой проблемой, особенно если вы уже используете GTK или GLib. Смотрите домашнюю страницу GNU Autounit .
Куните
Также использует GLib, но не разветвляется для защиты адресного пространства модульных тестов.
Куните
Стандартный C, с планами по реализации Win32 GUI. В настоящее время не разветвляется или иным образом не защищает адресное пространство модульных тестов. В начале разработки. Смотрите домашнюю страницу CUnit .
симпатичных
Простая структура с одним .c и одним .h файлом, который вы перетаскиваете в дерево исходных текстов. Смотрите домашнюю страницу CuTest .
CppUnit
Основа для модульного тестирования на C ++; Вы также можете использовать его для тестирования кода C. Он стабильный, активно развивается и имеет графический интерфейс. Основные причины не использовать CppUnit для C: во-первых, он довольно большой, а во-вторых, вы должны писать свои тесты на C ++, что означает, что вам нужен компилятор C ++. Если это не выглядит как проблемы, это определенно стоит рассмотреть, наряду с другими C ++ каркасами модульного тестирования. Смотрите домашнюю страницу CppUnit .
embUnit
embUnit (Embedded Unit) - это еще одна инфраструктура модульного тестирования для встроенных систем. Этот, кажется, заменен AceUnit. Домашняя страница встраиваемого блока .
MinUnit
Минимальный набор макросов и все! Суть в том, чтобы показать, как легко выполнить модульное тестирование вашего кода. Смотрите домашнюю страницу MinUnit .
Блок для мистера Андо
Реализация CUnit, которая является довольно новой и, видимо, все еще находится на ранней стадии разработки. Смотрите CUnit для г-на Андо на домашней странице .
Этот список последний раз обновлялся в марте 2008 года.
Больше рамок:
CMocka
CMocka - это тестовая среда для C с поддержкой фиктивных объектов. Это просто в использовании и настройке.
Смотрите домашнюю страницу CMocka .
критерий
Criterion - это кроссплатформенная инфраструктура модульного тестирования C, поддерживающая автоматическую регистрацию тестов, параметризованные тесты, теории и способная выводить данные в несколько форматов, включая TAP и JUnit XML. Каждый тест выполняется в своем собственном процессе, поэтому при необходимости можно сообщать о сигналах и сбоях.
Смотрите домашнюю страницу Критерий для получения дополнительной информации.
HWUT
HWUT - это общий инструмент модульного тестирования с отличной поддержкой C. Он может помочь создавать Make-файлы, генерировать массивные тестовые примеры, закодированные в минимальных «таблицах итераций», проходить по конечным автоматам, генерировать C-заглушки и многое другое. Общий подход довольно уникален: вердикты основаны на «хороший стандартный вывод / плохой стандартный вывод». Функция сравнения, однако, является гибкой. Таким образом, любой тип сценария может быть использован для проверки. Это может быть применено к любому языку, который может производить стандартный вывод.
Смотрите домашнюю страницу HWUT .
CGreen
Современный, переносимый, кросс-языковой модуль для тестирования и макетирования C и C ++. Он предлагает дополнительную нотацию BDD, библиотеку-макет, возможность запустить ее в одном процессе (для облегчения отладки). Доступен тестовый прогон, который автоматически обнаруживает функции теста. Но вы можете создавать свои собственные программно.
Все эти функции (и многое другое) описаны в руководстве CGreen .
Википедия дает подробный список платформ для модульного тестирования в разделе « Список платформ для модульного тестирования»: C