Как я могу построить Юниттесты с проверкой? - PullRequest
2 голосов
/ 29 февраля 2012

Я хочу протестировать мой код на C и решить использовать проверку в качестве среды тестирования. Но я не понимаю, как скомпилировать код? В этом уроке у них уже есть очень большие make-файлы, но они не объясняют, как их создавать или какие gcc-флаги мне нужны.

Как мне выполнить мои простые тесты?

Ответы [ 4 ]

1 голос
/ 29 февраля 2012

Очень просто работать с автоинструментами.В configure.ac вы проверяете наличие инфраструктуры модульного тестирования Check в целевой системе:

PKG_CHECK_MODULES([CHECK],[check >= 0.8.2],[have_check="yes"],
  AC_MSG_WARN(['Check' unit testing framework not found. It would be impossible to run unit tests!"])
  [have_check="no"])

В Makefile.am вы указываете, какие файлы и какскомпилировать для построения модульных тестов:

if HAVE_CHECK
check_PROGRAMS = bin/some_unit_tests 
bin_some_unit_tests_SOURCES = source1.c source2.c ...
bin_some_unit_tests_CFLAGS = -g -pg -O2 -fprofile-arcs -ftest-coverage ...
bin_some_unit_tests_LDFLAGS = -g -pg -no-install
bin_some_unit_tests_LDADD = @CHECK_LIBS@
TESTS = bin/some_unit_tests
TESTS_ENVIRONMENT = CK_FORK=yes
CK_VERBOSITY = verbose
CLEANFILES = some_unit_tests.log
endif

Затем вы запустите модульный тест, введя команду:

make check

Используя флаг -pg, вы сможете получить информацию о профилировании от исполняющего модулятесты.

0 голосов
/ 29 февраля 2012

Существуют проекты с открытым исходным кодом, которые используют проверку для модульного тестирования.Одним из примеров является TORQUE.Вы можете проверить источник с помощью SVN.В настоящее время вы хотите, чтобы транк видел модульные тесты.как настроить вещи.Как говорится в ответе bsa2000, есть много настроек для изменения make-файлов.

0 голосов
/ 29 февраля 2012

Вы можете получить архивный файл с именем "libcheck.a" после "configure-> make-> make install". Обычно libcheck.a устанавливается в «/ usr / lib» или «/ usr / local / lib», и Gcc может автоматически найти местоположение libcheck.a. Вам нужно добавить опцию -lcheck в командную строку компиляции, например, "gcc -o test_add test_add.c -lcheck".

Кроме проверки, есть также много других фреймворков для модульного тестирования c, например lcut , cmockery

0 голосов
/ 29 февраля 2012

Лично я не знаком с проверкой.

Я рекомендую использовать CppUTest и чтение TDD для встраиваемых C .Он имеет хорошее объяснение и работает как на C, так и на C ++.

Другой вариант - Unity, также задокументированный в упомянутой книге.

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