首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CUnit在测试失败时返回0

CUnit在测试失败时返回0
EN

Stack Overflow用户
提问于 2018-11-06 15:26:48
回答 2查看 546关注 0票数 0

我构建了一个在CUnit中执行测试的简单程序。主要职能是:

代码语言:javascript
复制
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的输出如下:

代码语言:javascript
复制
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。我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-06 15:41:55

我的错误:只有当框架函数有错误时,CU_get_error()才返回错误代码,而不是测试。要获得测试结果,请遵循tests.html

票数 1
EN

Stack Overflow用户

发布于 2020-02-19 14:35:57

也遇到了同样的问题。事实上,即使测试失败,CU_get_error()也将是0。下面的变量存储结果,如文档所示

代码语言:javascript
复制
unsigned int CU_get_number_of_suites_run(void)
unsigned int CU_get_number_of_suites_failed(void)
unsigned int CU_get_number_of_tests_run(void)
unsigned int CU_get_number_of_tests_failed(void)
unsigned int CU_get_number_of_asserts(void)
unsigned int CU_get_number_of_successes(void)
unsigned int CU_get_number_of_failures(void) 

因此,检查是否存在任何错误的简单方法如下:

代码语言:javascript
复制
if (CU_get_number_of_tests_failed() != 0){
  // Do Something
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53174938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档