当前位置: 首页 > 工具软件 > CUnit > 使用案例 >

CUnit函数总结

宇文飞翮
2023-12-01
 

1.      registry初始化

CU_ErrorCode    CU_initialize_registry(void);

//用户在调用任何其他CUnit函数之前调用本函数,如果不这样做可能会导致系统崩溃。

返回值为:

CUE_SUCCESS初始化成功。
CUE_NOMEMORY内存分配失败。

2.    registry释放

void CU_cleanup_registry(void);

//当测试完成后,用户应该调用这个函数进行清理和释放的框架所使用的内存。

 

//其他一些关于注册的内部函数,主要用于内部和测试的目的,较少使用

CU_pTestRegistry CU_get_registry(void);

CU_pTestRegistry CU_set_registry(CU_pTestRegistry pTestRegistry);

CU_pTestRegistry CU_create_new_registry(void);

void CU_destroy_existing_registry(CU_pTestRegistry* ppRegistry);

 

3.     向registry中增加suites

CU_pSuite CU_add_suite(const char* strName, CU_InitializeFunc pInit, CU_CleanupFunc pClean);

//创建一个新的测试集,具有指定的名称、初始化函数、清除函数。

返回值为:

l  CUE_SUCCESS                    suite创建成功。

l  CUE_NOREGISTRY            registry尚未初始化。

l  CUE_NO_SUITENAME     strName为NULL。

l  CUE_DUP_SUITE               suite的名称已经存在。

l  CUE_NOMEMORY            内存分配失败。

 

4.     向registry中增加test

CU_pTest CU_add_test(CU_pSuite pSuite, const char* strName, CU_TestFunc pTestFunc)

//创建一个新的具有指定名称和测试功能的test,并在指定的suite中注册。该suite必须是已经使用CU_add_suite()创建的。

返回值为:

l  CUE_SUCCESS                    suite创建成功。

l  CUE_NOSUITE                   指定的suite是Null或无效。

l  CUE_NO_TESTNAME       strName为NULL。

l  CUE_NO_TEST                  pTestFunc为null或无效。

l  CUE_DUP_TEST                 test的名称已存在。

l  CUE_NOMEMORY            内存分配失败。

 

5.     运行Tests

1)     Automated Mode 自动输出到XML文件

非交互式

void CU_automated_run_tests(void);

//运行在所有suites中注册的所有tests

 

CU_ErrorCode CU_list_tests_to_file(void);

//列出已注册的suites和与其相关联的tests

 

void CU_set_output_filename(const char* szFilenameRoot);

//设置-Results.xml和-Listing.xml的名字

 

2)     Basic Mode   基本扩展编程方式

非交互式

CU_ErrorCode CU_basic_run_tests(void);

//运行在所有suites中注册的所有tests

 

CU_ErrorCode CU_basic_run_suite(CU_pSuite pSuite);

//在一个指定的suite中运行其下所有的tests

 

CU_ErrorCode CU_basic_run_test(CU_pSuite pSuite, CU_pTest pTest);

//在一个指定的suite中运行指定的test

 

void CU_basic_set_mode(CU_BasicRunMode mode);

//设置运行的基本模式,控制着tests的输出,主要有下面几种

l  CU_BRM_NORMAL                   失败和运行概况打印。

l  CU_BRM_SILENT              只打印错误消息。

l  CU_BRM_VERBOSE                   Maximum output of run details。

 

CU_BasicRunMode CU_basic_get_mode(void);

//检测当前的运行模式

 

void CU_basic_show_failures(CU_pFailureRecord pFailure);

//将所有的失败信息打印到stdout,不依赖于运行模式

 

3)     Interactive Console Mode  控制台方式

交互式

void CU_console_run_tests(void);

//启动控制台方式

 

4)         Interactive Curses Mode    Curses图形接口

交互式,只适用于Unix/Linux

void CU_curses_run_tests(void);

//启动Curses方式,需要应用程序中支持ncurses库支持

 

6.    获取接口目前测试运行的结果

用户代码有时可能需要这些结果。主要包含以下函数:

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)

 

const CU_pRunSummary CU_get_run_summary(void)

const CU_pFailureRecord CU_get_failure_list(void)

unsigned int CU_get_number_of_failure_records(void)

 

7.       错误处理

CU_ErrorCode CU_get_error(void)
const char* CU_get_error_msg(void)

//第一个函数返回错误代码本身,而第二个函数返回一条消息,描述错误信息

Error Value

Description

CUE_SUCCESS

No error condition.

CUE_NOMEMORY

Memory allocation failed.

CUE_NOREGISTRY

Test registry not initialized.

CUE_REGISTRY_EXISTS

Attempt to CU_set_registry() without CU_cleanup_registry().

CUE_NOSUITE

A required CU_pSuite pointer was NULL.

CUE_NO_SUITENAME

Required CU_Suite name not provided.

CUE_SINIT_FAILED

Suite initialization failed.

CUE_SCLEAN_FAILED

Suite cleanup failed.

CUE_DUP_SUITE

Duplicate suite name not allowed.

CUE_NOTEST

A required CU_pTest pointer was NULL.

CUE_NO_TESTNAME

Required CU_Test name not provided.

CUE_DUP_TEST

Duplicate test case name not allowed.

CUE_TEST_NOT_IN_SUITE

Test is not registered in the specified suite.

CUE_FOPEN_FAILED

An error occurred opening a file.

CUE_FCLOSE_FAILED

An error occurred closing a file.

CUE_BAD_FILENAME

A bad filename was requested (NULL, empty, nonexistent, etc.).

CUE_WRITE_ERROR

An error occurred during a write to a file.

void CU_set_error_action(CU_ErrorAction action)
CU_ErrorAction CU_get_error_action(void)

//设置错误发生时,系统的行为

Error Value

Description

CUEA_IGNORE

错误发生时继续执行(默认)

CUEA_FAIL

错误发生时应系统停止

CUEA_ABORT

错误发生时系统应退出(EXIT)

 类似资料: