有没有办法验证shell脚本的覆盖率?我有一个项目有大量的外壳脚本,并需要确保静态分析可以执行对外壳脚本的覆盖率。有没有可用的工具?
发布于 2011-08-26 14:20:36
我严重怀疑是否可以对shell脚本执行任何静态代码分析-特别是考虑到shell脚本应该调用外部程序,并且基于这些外部程序返回的内容-并且有无数的外部程序和外部环境状态。这类似于在很大程度上依赖于eval-like机制的代码静态分析问题,但shell脚本都是关于eval风格的编程。
然而,有一些通用的指针可以证明对shell脚本的“适当”验证、代码覆盖率和文档化有用,就像主要语言所做的那样:
-x (也称为xtrace)选项运行脚本-它将输出如下跟踪到stderr:发布于 2011-08-26 16:15:09
我不认为有可用于测试覆盖的COTS工具,不管脚本语言是什么,而且有很多。
另一位发帖人建议了一种特别的方法,可以与一些工具一起使用:让它们转储一些跟踪数据,并尝试将其与实际代码相匹配,以获得覆盖范围。他说这有点用..。这就是大多数夸夸其谈的问题。
my technical paper on a general approach for building test coverage tools使用程序转换介绍了为您最喜欢的脚本语言构建测试覆盖率的另一种方法。我的公司以这种方式为更流行的语言构建了一系列这样的工具。
发布于 2012-09-12 00:40:05
您可以尝试使用shcov,这是一个基于GPLv2许可的基于Python的工具。它似乎已经被作者抛弃了,但它确实生成了基于HTML的图形报告,并且(在我有限的测试中)在覆盖率分析方面似乎相当准确。
https://stackoverflow.com/questions/7188081
复制相似问题