Как запустить c модульных тестовых случаев с использованием CMOCKA Framework? - PullRequest
0 голосов
/ 20 января 2020

Я недавно начал работать над проектом, написанным на языке C. Чтобы добавить примеры модульных тестов, я искал C инфраструктуры модульных тестов и наткнулся на этот ответ C -unittest-frameworks . Поэтому я выбрал mocka и установил его из шагов установки . Но я знаю, как запустить письменные тесты. Может ли кто-нибудь помочь мне запустить из командной строки (команда G CC) простой случай устройства ниже:

 #include <stdarg.h>
 #include <stddef.h>
 #include <setjmp.h>
 #include <cmocka.h> /* A test case that does nothing and succeeds. */ 

 static void null_test_success(void **state) {
    (void) state; /* unused */ 
 } 
 int main(void) {
     const struct CMUnitTest tests[] = {
         cmocka_unit_test(null_test_success),
     };
     return cmocka_run_group_tests(tests, NULL, NULL); 
  }

И к вашему сведению я имею в виду cmocka . И, пожалуйста, позвольте мне, какие зависимости требуются кроме G CC и cmocka. Или любая переменная окружения должна быть задана для путей LD и т. Д. c.

Чтобы обновить этот вопрос, я выполнил следующие шаги:

1. git clone https://gitlab.com/cmocka/cmocka.git
2. cd cmocka && mkdir -p build && cd build/
3. cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Debug -DUNIT_TESTING=ON ..
4. make && make install

В конце концов, шаги, если в build dir I выполнить ctest tests / , он запускает все тестовые случаи. Теперь я застрял на том, как выполнить те же шаги для моего проекта и запустить фиктивный юнит-тест.

1 Ответ

0 голосов
/ 21 января 2020

Наконец, после дополнительных исследований inte rnet, я наткнулся на эту очень хорошо написанную статью о том, как запускать юнит-тесты с использованием cmocka. Вот ссылка run c модульных тестов с использованием cmocka .

Я также разветвлял его git репо и соответственно изменил его, взгляните на git репо также git код .

Кроме того, я попробовал другой фреймворк gtest, посмотрите пример кода gtest

...