2010-01-20 49 views
10

对于大多数语言,有很多单元测试框架,但是我还没有遇到过GNU make的单元测试。它有conditionals,循环($(foreach ...)语句),并允许编写非常复杂的代码。这些例子可能是诸如BSD端口,GARNOME和OpenCSW GAR之类的东西。是否有GNU make的单元测试框架?

还有a debugger为GNU作。但是,我从来没有遇到过单元测试框架。有没有这样的事情?

+0

+1非常有趣的想法 - 并感谢链接到调试器! – 2010-01-20 09:12:13

回答

-1

Perl,PHP,Python,GHC和GCC的makefiles(我可以从头顶开始考虑的开源项目以及躺在我的机器上)都有'测试'目标,我认为做有趣的阅读。

+1

-1他不是在说使用make来测试其他东西。他正在谈论测试makefiles。 – Tomas 2010-01-20 10:02:58

+0

D'oh!错过了这一点。 *有一些代码在autotools中测试make是否理智......但这不等于单元测试框架。 – 2010-01-20 10:12:26

1

单元测试通常假定语言有某种形式的机制,模块化的,这使得GNU真的没有。你将要测试的“单位”是什么?个人目标?你将如何设置每个测试的输入/输出?

而且,由于makefile文件编译期间执行的,人们可以说,Makefile的“自我测试”,而很少用于明确的“生成文件测试套件”有什么好处。

+0

我想你可以使用单个目标作为单位,给定某些变量设置。您还可以将代码拆分为包含在主文件中的文件,但也包含在测试文件中,具有不同的设置。 – automatthias 2011-12-06 21:03:57

0

我也看到了构建本身的集成测试。

通常与构建问题弹出早期,特别是如果你有一个工作的持续集成设置。在我们的例子中,我们有所有可能的构建路径运行在我们的ci服务器上(软件不断的构建和部署)。

据我记得,如果构建脚本出现问题,ci会立即向我们显示崩溃,例如因为无法构建tar-ball,或者由于缺少工件而无法启动应用程序。

基于以上原因,我想尝试单元测试集结文件本身涉及太多的精力,这可能设立或延长持续集成度过美好。