2016-07-04 78 views
0

我的代碼如下所示:CUNIT斷言斷言`((無效*)0)= f_pCurSuite」失敗

#include <CUnit/CUnit.h> 


int maxi(int i1, int i2) 
{ 
    return (i1 > i2) ? i1 : i2; 
} 

void test_maxi(void) 
{ 
    CU_ASSERT(maxi(0,2) == 2); 
} 

int main() { 
    test_maxi(); 
    return 0; 
} 

我在Ubuntu使用gcc test.c -o test -lcunit它編譯。

我在嘗試啓動它時,這個錯誤:

測試:TestRun.c:159:CU_assertImplementation:斷言`((無效*)0)= f_pCurSuite失敗。 Aborted(核心轉儲)

這是什麼意思?我在網上找不到它。

+0

您是否檢查過[示例代碼](http://cunit.sourceforge.net/example.html)?看起來你錯過了很多設置。 –

回答

1

CUnit適用於測試套件,您需要先創建,然後才能運行該應用程序。

一個非常基本的方法,使您的測試工作是這樣的:

#include <CUnit/CUnit.h> 
#include <CUnit/Basic.h> 

int maxi(int i1, int i2) 
{ 
    return (i1 > i2) ? i1 : i2; 
} 

void test_maxi(void) 
{ 
    CU_ASSERT(maxi(0,2) == 2); 
} 

int main() { 
    CU_initialize_registry(); 
    CU_pSuite suite = CU_add_suite("maxi_test", 0, 0); 

    CU_add_test(suite, "maxi_fun", test_maxi); 

    CU_basic_set_mode(CU_BRM_VERBOSE); 
    CU_basic_run_tests(); 
    CU_cleanup_registry(); 

    return 0; 
} 

沒有所有必需的檢查,但勒夫Pileborg的意見建議,它的安全按照提供的示例代碼。