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