寻找实际讨论如何用Java编写代码覆盖工具的书籍或其他参考文献; 一些各种技巧或技巧 - 源代码与字节代码检测。

这适用于在脚本下生成Java字节代码的脚本语言。

===============>>#1 票数:7

您的脚本语言是否生成字节码? 它是否生成调试元数据? 如果是这样,字节码检测可能是要走的路。 事实上,现有工具可能会起作用(可能只需要很少的修改)。

这些工具的典型问题是它们被编写为与Java一起使用并假设class com.foo.Bar.class对应于文件com/foo/Bar.java 解开这个假设可能很乏味。

EMMA是一个ClassLoader,它为Java中的代码覆盖率集合执行字节码重写。 编码风格有点时髦,但我建议阅读一些想法的源代码。

如果您的脚本语言被解释,那么您将需要一个挂钩到解释器的更高级的类加载器(在源级别)。

===============>>#2 票数:3

嗯,麦克! http://asm.objectweb.org /是另一个。 有关字节代码检测的优秀文档,但没有“直接”旨在编写覆盖工具 - 只是一些提示或想法。

===============>>#3 票数:3

您还可以从开源代码覆盖工具中获取源代码并从中学习。

===============>>#4 票数:2

如果您正在谈论ColdFusion(我假设您来自标签),那么我不确定这是否可行,但我可能在这里错了...

IIRC,当CF编译它时,它基本上编译成CFML的解释形式,作为普通的旧java源文件,然后将其编译到类中。 因此,您可能拥有的任何工具都将应用于中间版本而不是CFML本身。

尽管如此,Adobe现在已经获得了CF调试器,它可以逐步执行代码,所以请证明我错了 - 我喜欢CFML中的代码覆盖。

===============>>#5 票数:2

您可能还想使用类似BCEL的东西来分析字节代码中实际存在哪些源代码行。 您不希望报告空白行和评论等内容未被涵盖。

  ask by translate from so

未解决问题?本站智能推荐: