CUnit возвращает 0 при неудачном тесте - PullRequest
0 голосов
/ 06 ноября 2018

Я создал простую программу, которая выполняет тест в CUnit. Основная функция:

int main()
 50 {
 51         CU_pSuite pSuite = NULL;
 52 
 53         /* initialize the CUnit test registry */
 54         if (CUE_SUCCESS != CU_initialize_registry())
 55                 return CU_get_error();
 56 
 57         /* add a suite to the registry */
 58         pSuite = CU_add_suite("Suite_1", init_suite1, clean_suite1);
 59         if (NULL == pSuite) { 
 60                 CU_cleanup_registry();
 61                 return CU_get_error();
 62         } 
 63 
 64         if ((NULL == CU_add_test(pSuite, "test of fprintf()", test_parse))) { 
 65                 CU_cleanup_registry();
 66                 return CU_get_error();
 67         } 
 68 
 69         /* Run all tests using the CUnit Basic interface */
 70         CU_basic_set_mode(CU_BRM_VERBOSE);
 71         CU_basic_run_tests();
 72         CU_cleanup_registry();
 73         printf("ERROR CODE: %d", CU_get_error());
 74         return CU_get_error();
 75 }

Функция test_parse использует CU_ASSERT_FATAL. Тест не пройден, но вывод main следующий:

CUnit - A unit testing framework for C - Version 2.1-3
http://cunit.sourceforge.net/


Suite: Suite_1
  Test: test of fprintf() ...FAILED
    1. /home/fedetask/Desktop/curl/tests/main.c:42  - parsed == 3

Run Summary:    Type  Total    Ran Passed Failed Inactive
              suites      1      1    n/a      0        0
               tests      1      1      0      1        0
             asserts      5      5      4      1      n/a

Elapsed time =    0.000 seconds
ERROR CODE: 0

Функция main () возвращает 0. Она также возвращает 0, если тест пройден. Что я делаю не так?

1 Ответ

0 голосов
/ 06 ноября 2018

Моя ошибка: CU_get_error () возвращает код ошибки, только если в функции фреймворка была ошибка, а не в тестах. Чтобы получить результаты теста, следуйте http://cunit.sourceforge.net/doc/running_tests.html

...