我正在尝试学习DejaGnu(https://www.gnu.org/software/dejagnu/),并希望将其用作C API单元测试的框架。我的构建系统基于Autotools。
在./testsuite
的子目录中,我有许多C文件,每个C文件都包含dejagnu.h
,并使用其过程来报告某些测试的通过和失败。
在./testsuite
中,我的Makefile.am
有一行AUTOMAKE_OPTIONS=dejagnu
,这使make check
呼叫DejaGnu的runtest
。
我现在缺少的是一些粘合代码(可能有一些Expect文件),这些代码使runtest
可以通过单元测试找到我的C文件,执行它们并收集结果。
我正在寻找比DejaGnu手册中的描述更好的解释,示例设置或指向一些开源项目的链接,这些链接实际上在构建系统中实现了我的构想。
(我不是在寻求替代工具。这是一个关于DejaGnu的问题。)
答案 0 :(得分:0)
使用dejagnu.h中定义的通过/失败功能仅对用于单元测试的批处理工具有效。您需要的是一个简单的xx.exp文件,如下所示:
load_lib dejagnu.exp
host_execute $ srcdir / unit-code / unittest