如何用支票构建单元测试?

时间:2012-02-29 14:46:32

标签: c unit-testing testing check-framework

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

如何执行我的简单测试?

4 个答案:

答案 0 :(得分:1)

使用autotools进行操作非常简单。在 configure.ac 中,检查目标系统上是否存在Check unit测试框架:

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标志,您将能够从执行单元测试中获取分析信息。

答案 1 :(得分:0)

我个人对Check不熟悉。

我建议您使用CppUTest并阅读TDD For Embedded C。 它有一个很好的解释,适用于C和C ++。

另一个选项是Unity,也在参考书中记录。

答案 2 :(得分:0)

在“configure-> make-> make install”之后,您可以获得名为“libcheck.a”的存档文件。通常libcheck.a将安装到“/ usr / lib”或“/ usr / local / lib”中,Gcc可以自动找到libcheck.a的位置。您需要做的是在编译命令行中添加-lcheck选项,例如“gcc -o test_add test_add.c -lcheck”。

除了检查之外,还有许多其他用于c单元测试的框架,例如: lcutcmockery

答案 3 :(得分:0)

有些开源项目使用check进行单元测试。一个例子是TORQUE。您可以使用svn查看源代码。目前你想让主干看到单元测试 - svn co svn://svn.clusterresources.com/torque/trunk

查看目录src / lib / Libutils / test / resizable_array,了解如何设置的一个示例。就像bsa2000的答案所说,在改变makefile方面有很多设置。