CU_SuiteInfo suites[] = { { "suitename1", suite1_init-func, suite1_cleanup_func, test_array1 }, { "suitename2", suite2_init-func, suite2_cleanup_func, test_array2 }, CU_SUITE_INFO_NULL, }; |
这样,我们将整个注册流程简化为:
CU_ErrorCode error = CU_register_suites(suites); |
或者
CU_ErrorCode error = CU_register_nsuites(2, suites1, suites2); |
这些函数的返回值和包注册函数、测试用例关联函数相同
4.5 设置当前活动测试包和测试用例
CU_ErrorCode CU_set_suite_active(CU_pSuite pSuite, CU_BOOL fNewActive) CU_ErrorCode CU_set_test_active(CU_pTest pTest, CU_BOOL fNewActive) |
这些函数被用来测试包测试用例为当前活动包和当前活动测试用例,一个测试包或者测试用例在执行测试时不会被执行,除非用户将它设置为是当前活动的。所有的测试包和测试用例在创建时被默认设置为活动的。当前活动状态可以通过pSuite->fActive或pTest->fActive获取。这样,客户端就有能力动态地选择测试用例去执行测试。如果参数对应的包或者用例不存在则返回CUE_NOSUIT或CUI_NOTEST。
4.6 修改测试包和测试用例的属性
CU_ErrorCode CU_set_suite_name(CU_pSuite pSuite, const char *strNewName) CU_ErrorCode CU_set_test_name(CU_pTest pTest, const char *strNewName) CU_ErrorCode CU_set_suite_initfunc(CU_pSuite pSuite, CU_InitializeFunc pNewInit) CU_ErrorCode CU_set_suite_cleanupfunc(CU_pSuite pSuite, CU_CleanupFunc pNewClean) CU_ErrorCode CU_set_test_func(CU_pTest pTest, CU_TestFunc pNewFunc) |
4.7 测试包和测试用例的查询
大多数情况下,客户端可以通过注册测试包和关联测试用例获取它们的引用。有时候客户端可能需要有能力去检索某个测试包或测试用例的引用。CUnit提供给客户端获取某个测试包或测试用例信息的能力。
CU_pSuite CU_get_suite(const char* strName) CU_pSuite CU_get_suite_at_pos(unsigned int pos) unsigned int CU_get_suite_pos(CU_pSuite pSuite) unsigned int CU_get_suite_pos_by_name(const char* strName) |
这些函数使用户查询注册到当前活动注册簿中的测试包。可以通过传入名字、位置参数来获取测试包,如果该测试包不存在,则返回NULL。位置参数从1开始到注册簿中的测试包数。按名字查询的方式只返回测试包链表中的第一个测试包。如果注册簿没有初始化则错误码为CUE_NOREGISTRY,相应的,如果按名字查找的包不存在,错误码为CUE_NO_SUITENAME且返回NULL。
CU_pTest CU_get_test(CU_pSuite pSuite, const char *strName) CU_pTest CU_get_test_at_pos(CU_pSuite pSuite, unsigned int pos) unsigned int CU_get_test_pos(CU_pSuite pSuite, CU_pTest pTest) unsigned int CU_get_test_pos_by_name(CU_pSuite pSuite, const char *strName) |
如上函数和测试包查询类似。
5. 运行测试
5.1 常用相关函数
#include void CU_automated_run_tests(void) CU_ErrorCode CU_list_tests_to_file(void) void CU_set_output_filename(const char* szFilenameRoot) #include typedef enum CU_BasicRunMode CU_ErrorCode CU_basic_run_tests(void) CU_ErrorCode CU_basic_run_suite(CU_pSuite pSuite) CU_ErrorCode CU_basic_run_test(CU_pSuite pSuite, CU_pTest pTest) void CU_basic_set_mode(CU_BasicRunMode mode) CU_BasicRunMode CU_basic_get_mode(void) void CU_basic_show_failures(CU_pFailureRecord pFailure) #include void CU_console_run_tests(void) #include void CU_curses_run_tests(void) #include 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) typedef struct CU_RunSummary typedef CU_Runsummary* CU_pRunSummary const CU_pRunSummary CU_get_run_summary(void) typedef struct CU_FailureRecord typedef CU_FailureRecord* CU_pFailureRecord const CU_pFailureRecord CU_get_failure_list(void) unsigned int CU_get_number_of_failure_records(void) void CU_set_fail_on_inactive(CU_BOOL new_inactive) CU_BOOL CU_get_fail_on_inactive(void) |
原文转自:http://www.uml.org.cn/Test/201404151.asp