如何使用check构建单元测试?

如何使用check构建单元测试?,c,unit-testing,testing,check-framework,C,Unit Testing,Testing,Check Framework,我想测试我的C代码,并决定使用check作为测试框架。 但是我不明白如何编译代码? 在教程中,他们已经有了非常大的makefile,但是他们没有解释如何构建它们,或者我需要什么gcc标志 如何执行我的简单测试?就我个人而言,我不熟悉Check 我会推荐使用和阅读。 对C和C++都有很好的解释和说明。 另一个选项是Unity,也记录在参考书中。您可以在“配置->制作->制作安装”之后获得一个名为“libcheck.a”的归档文件。通常libcheck.a将安装到“/usr/lib”或“/usr/l

我想测试我的C代码,并决定使用check作为测试框架。 但是我不明白如何编译代码? 在教程中,他们已经有了非常大的makefile,但是他们没有解释如何构建它们,或者我需要什么gcc标志


如何执行我的简单测试?

就我个人而言,我不熟悉Check

我会推荐使用和阅读。 对C和C++都有很好的解释和说明。
另一个选项是Unity,也记录在参考书中。

您可以在“配置->制作->制作安装”之后获得一个名为“libcheck.a”的归档文件。通常libcheck.a将安装到“/usr/lib”或“/usr/local/lib”中,Gcc可以自动找到libcheck.a的位置。您需要做的是在编译命令行中添加-lcheck选项,例如“gcc-otest\u add test\u add.c-lcheck”


除了check之外,还有许多其他的c单元测试框架,例如,

使用autotools很简单。在configure.ac中,检查目标系统上是否存在检查单元测试框架:

PKG_CHECK_MODULES([CHECK],[check >= 0.8.2],[have_check="yes"],
  AC_MSG_WARN(['Check' unit testing framework not found. It would be impossible to run unit tests!"])
  [have_check="no"])
Makefile.am中,指定编译哪些文件以及如何编译以生成单元测试:

if HAVE_CHECK
check_PROGRAMS = bin/some_unit_tests 
bin_some_unit_tests_SOURCES = source1.c source2.c ...
bin_some_unit_tests_CFLAGS = -g -pg -O2 -fprofile-arcs -ftest-coverage ...
bin_some_unit_tests_LDFLAGS = -g -pg -no-install
bin_some_unit_tests_LDADD = @CHECK_LIBS@
TESTS = bin/some_unit_tests
TESTS_ENVIRONMENT = CK_FORK=yes
CK_VERBOSITY = verbose
CLEANFILES = some_unit_tests.log
endif
然后通过发出以下命令来运行单元测试:

make check

通过使用-pg标志,您将能够从执行单元测试中获得分析信息。

有一些开源项目使用check进行单元测试。扭矩就是一个例子。您可以使用svn检查源代码。当前,您希望主干看到单元测试- svn公司svn://svn.clusterresources.com/torque/trunk


查看目录src/lib/Libutils/test/resizeable_array,了解如何设置。正如bsa2000的回答所说,在修改makefiles方面有很多设置。

上一个版本是从2009年开始的,因为它的功能已经完成,在这段时间内没有发现任何bug。通过邮件列表的活动来判断项目的活动,而不仅仅是上一次发布的时间。正如我在邮件中提到的,我不熟悉Check。最后一次签入日期是选择应用程序的一个因素,不是唯一的一个,而是我的前10个因素。无论如何,我会删除我在版本日期上的评论,如果我冒犯了某人,请原谅。请看我的答案,