首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于验证脚本的代码覆盖率工具

用于验证脚本的代码覆盖率工具
EN

Stack Overflow用户
提问于 2011-08-25 17:35:02
回答 4查看 3.8K关注 0票数 7

有没有办法验证shell脚本的覆盖率?我有一个项目有大量的外壳脚本,并需要确保静态分析可以执行对外壳脚本的覆盖率。有没有可用的工具?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-08-26 14:20:36

我严重怀疑是否可以对shell脚本执行任何静态代码分析-特别是考虑到shell脚本应该调用外部程序,并且基于这些外部程序返回的内容-并且有无数的外部程序和外部环境状态。这类似于在很大程度上依赖于eval-like机制的代码静态分析问题,但shell脚本都是关于eval风格的编程。

然而,有一些通用的指针可以证明对shell脚本的“适当”验证、代码覆盖率和文档化有用,就像主要语言所做的那样:

  • 您可以始终使用-x (也称为xtrace)选项运行脚本-它将输出如下跟踪到stderr:
  • log_end_msg 0+ xxterm 0+ retval=0 + log_end_msg_pre 0+:+ log_use_fancy_output + TPUT=/usr/bin/tput +expr=/usr/bin/ -t +expr 1+ xxterm != x+xxterm != xdumb
  • Bash使此流重定向到外部FD (使用BASH_XTRACEFD变量)-在practice.
  • It's中解析要容易得多,但是可以编写一个程序,它可以使用xtrace输出找到正在执行的相关代码片段,并生成一个花哨的“代码覆盖率”报告--比如调用了多少次,哪些代码片段根本没有运行,从而缺乏测试覆盖率。
  • 实际上,已经编写了一个名为shcov的很棒的工具,它使用了这个过程--尽管它有点简单,并且不能很好地处理所有可能的情况(特别是当我们讨论长而复杂的行时)
  • Last,但同样重要的是,有一个极简的shelldoc项目(类似于javadoc),它可以帮助基于shell脚本中的注释生成文档。是的,这是一个无耻的插头:)
票数 7
EN

Stack Overflow用户

发布于 2011-08-26 16:15:09

我不认为有可用于测试覆盖的COTS工具,不管脚本语言是什么,而且有很多。

另一位发帖人建议了一种特别的方法,可以与一些工具一起使用:让它们转储一些跟踪数据,并尝试将其与实际代码相匹配,以获得覆盖范围。他说这有点用..。这就是大多数夸夸其谈的问题。

my technical paper on a general approach for building test coverage tools使用程序转换介绍了为您最喜欢的脚本语言构建测试覆盖率的另一种方法。我的公司以这种方式为更流行的语言构建了一系列这样的工具。

票数 3
EN

Stack Overflow用户

发布于 2012-09-12 00:40:05

您可以尝试使用shcov,这是一个基于GPLv2许可的基于Python的工具。它似乎已经被作者抛弃了,但它确实生成了基于HTML的图形报告,并且(在我有限的测试中)在覆盖率分析方面似乎相当准确。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7188081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档