如何使用DejaGnu

时间:2019-06-26 06:11:43

标签: c unit-testing gnu autotools dejagnu

我正在尝试学习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的问题。)

1 个答案:

答案 0 :(得分:0)

使用dejagnu.h中定义的通过/失败功能仅对用于单元测试的批处理工具有效。您需要的是一个简单的xx.exp文件,如下所示:

load_lib dejagnu.exp

host_execute $ srcdir / unit-code / unittest