2016-07-04 11 views
0

私のコードは次のようになり失敗しました:!私はUbuntuでgcc test.c -o test -lcunitを使用してそれをコンパイルクニットアサーションアサーション `((void *型)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; 
} 

それを起動しようとしたとき、私はこのエラーを取得:

テスト:TestRun.c:159:CU_assertImplementation:!アサーション `((void *型)0) = f_pCurSuiteは、」失敗しました。中止(コアダンプ)

この意味は?私はインターネット上でそれについて何も見つけ出しませんでした。

+0

[example code](http://cunit.sourceforge.net/example.html)にチェックを入れましたか?あなたはセットアップがかなり不足しているようです。 –

答えて

1

CUnitはテストスイートで動作します。アプリケーションを実行する前に作成する必要があります。

仕事に、あなたのテストを行うための非常に基本的な方法は、次のようなものです:ヨアヒムPileborgはコメントで提案

#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; 
} 

必要なすべてのチェックをせずに、しかしとして、それが提供するサンプルコードを追跡する方が安全です。

関連する問題