gpt4 book ai didi

java - 代码覆盖率中应该包含注释吗?

转载 作者:行者123 更新时间:2023-12-02 03:03:36 35 4
gpt4 key购买 nike

这些问题是相当不言自明的。

各种(java)代码覆盖工具如何处理注释?它们是否被视为代码并包含在覆盖率报告中?它们并不完全是“可执行的”,所以我对如何处理它们有点困惑。

PS:顺便说一句,我已经用谷歌搜索过,关于这个主题的内容很少!

最佳答案

简短的回答是,注释是元数据,因此它们不是可以覆盖的代码的一部分。不过,还有一些事情需要考虑。代码覆盖率中应该包含的内容和可以包含的内容可能有很大不同,具体取决于您使用的技术。

大多数覆盖率工具(我知道 cobertura 和 ECLEmma)从不真正查看源代码,它们查看字节码。并非您在源文件中看到的每一行内容都与 .class 文件的可执行部分中的任何内容相对应。

注释使事情变得更加复杂,因为有些注释只是源代码中的元数据,有些被编译并保存在字节码中。当然,只是元数据的注释不应被视为代码,因此它们不应包含在覆盖信息中。即使保留在二进制文件中的注释也不应该直接被视为要覆盖的代码。类似的东西

@MyAnnotation
class MyClass ...

不可执行。放置在那里的注释没有可执行的方面。所以不能覆盖。到目前为止,这是相当确定的。

从这里开始,我进行了一些猜测。注释可以包含可查询的数据字段。我不知道编译器是否为此生成 getter 方法(原则上是可以覆盖的代码),或者它们是否是调用者直接读取的公共(public)字段。

关于java - 代码覆盖率中应该包含注释吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9721906/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com