我的代码如下所示:
#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:断言‘((void *)0) != f_pCurSuite’失败。中止(核心倾弃)
什么意思?我在网上什么也没发现。
发布于 2016-07-04 11:58:23
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在注释中所建议的,遵循所提供的示例代码更安全。
https://stackoverflow.com/questions/38183974
复制相似问题