或者
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