Check

属性说明
类型C 单元测试框架
许可证LGPL
仓库https://libcheck.github.io/check/

核心特点:在独立进程中运行每个测试(可选 CK_FORK 模式),防止崩溃或段错误终止整个测试套件。每个测试可以设置独立的 fixture(setup/teardown)。

核心 API

函数说明
tcase_create / suite_add_tcase创建测试套件和用例
tcase_add_test向用例添加测试
tcase_add_checked_fixture添加 setup/teardown
ck_assert_int_eq整数相等断言
ck_assert_str_eq字符串相等断言
ck_assert_ptr_null指针为 NULL 断言
#include <check.h>
START_TEST(test_add) {
    ck_assert_int_eq(add(2, 3), 5);
}
END_TEST
 
Suite *suite = suite_create("Math");
TCase *tc = tcase_create("Core");
tcase_add_test(tc, test_add);
suite_add_tcase(suite, tc);
 
SRunner *sr = srunner_create(suite);
srunner_run_all(sr, CK_NORMAL);
int failed = srunner_ntests_failed(sr);
srunner_free(sr);

跨语言参考: C标准库深度剖析