我想测试我的C代码并决定使用check as testing Framework。 但我不明白如何编译代码? 在教程中,他们已经有了非常庞大的makefile,但他们没有解释如何构建它们或者我需要什么gcc标志。
如何执行我的简单测试?
答案 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)
答案 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”。
答案 3 :(得分:0)
有些开源项目使用check进行单元测试。一个例子是TORQUE。您可以使用svn查看源代码。目前你想让主干看到单元测试 - svn co svn://svn.clusterresources.com/torque/trunk
查看目录src / lib / Libutils / test / resizable_array,了解如何设置的一个示例。就像bsa2000的答案所说,在改变makefile方面有很多设置。