我想测试我的C代码,并决定使用check作为测试框架。但是我不明白如何编译代码?在教程中,他们已经有了非常大的makefile,但他们没有解释如何构建它们,也没有解释我需要的是什么。
如何执行我的简单测试?
发布于 2012-03-01 01:10:48
使用自动工具非常简单。在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标志,您将能够从执行单元测试中获得分析信息。
发布于 2012-02-29 23:01:00
就我个人而言,我不熟悉Check。
我会推荐使用CppUTest和阅读TDD For Embedded C。它有一个很好的解释,可以在C和C++上工作。
另一种选择是Unity,也记录在参考书籍中。
发布于 2012-03-01 00:11:55
在"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单元测试框架,例如lcut,cmockery
https://stackoverflow.com/questions/9501175
复制相似问题