我的代码如下所示:
#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
编译它。
尝试启动时出现此错误:
test:TestRun.c:159:CU_assertImplementation:断言`((void *)0) != f_pCurSuite'失败了。中止(核心倾销)
这是什么意思?我在互联网上一无所获。
答案 0 :(得分:2)
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;
}
没有所有必要的检查,但正如Joachim Pileborg在评论中建议的那样,遵循提供的示例代码更安全。