单元测试通常假定语言具有某种形式的模块化机制,而GNU make实际上并没有。你将要测试的“单元”是什么?个别目标?如何设置每个测试的输入/输出?
此外,由于makefile在构建期间执行,因此可以认为makefile“自我测试”,留下很少的空间来明确地进行“makefile测试套件”。
我认为构建本身也可以作为集成测试。
通常情况下,构建问题会很早就出现,特别是如果您有一个工作的持续集成设置。在我们的情况下,我们定期运行所有可能的构建路径在我们的CI服务器上(软件不断构建和部署)。
据我所记得,如果构建脚本出现问题,CI会立即显示崩溃,例如由于无法构建tar-ball或由于缺少工件而无法启动应用程序。
出于以上原因,我认为尝试对构建文件本身进行单元测试涉及太多的努力,这些努力可以更好地花费在设置或扩展持续集成上。
GNU make
分支链接:http://bashdb.sourceforge.net/remake/ - Victor Sergienko