首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用check构建单元测试?

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

Stack Overflow用户
提问于 2012-02-29 22:46:32
回答 4查看 1.1K关注 0票数 2

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

如何执行我的简单测试?

EN

回答 4

Stack Overflow用户

发布于 2012-03-01 01:10:48

使用自动工具非常简单。在configure.ac中,您可以检查目标系统上是否存在检查单元测试框架:

代码语言:javascript
复制
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中,您可以指定构建单元测试所需的文件和编译方式:

代码语言:javascript
复制
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

然后,通过发出以下命令运行单元测试:

代码语言:javascript
复制
make check

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

票数 1
EN

Stack Overflow用户

发布于 2012-02-29 23:01:00

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

我会推荐使用CppUTest和阅读TDD For Embedded C。它有一个很好的解释,可以在C和C++上工作。

另一种选择是Unity,也记录在参考书籍中。

票数 0
EN

Stack Overflow用户

发布于 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单元测试框架,例如lcutcmockery

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9501175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档