我正在尝试使用API sanity autotest为我的C代码自动生成单元测试。
但是,问题在于它使用起来有点复杂,一些教程/ howto /其他资源如何使用它会非常有用。
您对API健全自动测试有什么好运吗? 你认为有一个更好的工具可以用来自动生成C代码的单元测试吗?
答案 0 :(得分:1)
如果您的库包含超过一百个函数,它是一个更好的工具(在Unix的免费解决方案中)完全自动生成冒烟测试。独特的功能是能够为每个函数自动生成合理的输入参数。
此框架最常用的用例是快速搜索库中的内存问题(segfaults)。从历史上看,这个框架用于为Qt3和Qt4等太大的库创建LSB认证测试套件,这些库无法在合理的时间内手动创建。
使用以下命令生成,构建和执行测试:
api-sanity-checker -l name -d descriptor.xml -gen -build -run
XML描述符是一个简单的XML文件,它指定版本号,标题和共享对象的路径:
<version>
0.3.4
</version>
<headers>
/usr/local/libssh/0.3.4/include/
</headers>
<libs>
/usr/local/libssh/0.3.4/lib/
</libs>
您可以使用specialized types为输入参数改进生成的测试。
请参阅example为freetype2 2.4.8生成的测试。
答案 1 :(得分:0)
这首先是灾难的秘诀。如果你自动生成单元测试,你将得到一堆并不意味着很多的测试。如果您有一个未在自动化测试中涵盖的库,那么根据定义,该库是遗留代码。考虑遵循遗留代码的传统智慧......
每次更改:
另请考虑选取 Working Effectively with Legacy Code 的副本。
修改强>
作为我们讨论的结果,很明显您只想强制执行一些基本标准,例如如何处理空指针值,以及生成的测试。我认为你不需要生成测试。相反,您需要一个工具来检查库并动态地运行其功能,确保它符合您定义的某些编码标准。我建议您自己编写此工具,以便它可以利用您对要强制执行的规则以及正在测试的库的了解。