我在cobertura-maven-plugin中看到,我可以使用excludes和配置我的仪器ignores.这两者有什么区别?
Chr*_*olf 13
真的很抱歉,但是对可怕的文档进行鹦鹉学舌是没有用的.你引用了:
您可以通过传入"忽略"正则表达式来告诉Cobertura忽略某些类.ignore模式可以是任何有效的perl 5正则表达式.这将忽略对忽略正则表达式匹配的任何方法的任何调用.在仪表期间不会跳过这些课程.要从检测中排除类,可以从文件集中排除它们,也可以使用下面的替代方法并指定excludeClasses模式.
这个不一致的段落首先声明"......通过传递'忽略'正则表达式来忽略某些类.",然后是第二句话,"这将忽略对任何与忽略正则表达式匹配的方法的任何调用."
好吧,那是哪个呢?"忽略"忽略类或方法吗?命令行引用似乎暗示忽略忽略基于RegEx匹配的代码行(我希望这是真的):
这些解释都不适用于maven插件中的<ignore>.
实验上我发现<exclude>是在类级别排除的方法.我没有找到一种方法来排除粒度,而不是类.但是,他们也没有告诉你的是<exclude>需要一个相对的文件系统路径,而不是Java package.class表达式,这意味着<exclude>需要例如一个/两个/三个/ Myclass.class,而不是"一个.two.three.Myclass".
GPR*_*ons 10
忽略和排除真正的功能没有任何相似之处.Exclude将从Cobertura的扫描中删除文件.忽略将删除一个类的所有用法,以便为线路覆盖做出贡献.
请考虑以下代码段:
public class Foo {
public void someMethod() {
Bar bar = new Bar();
}
}
Run Code Online (Sandbox Code Playgroud)
如果配置<exclude> Foo.class </ exclude>,则整个Foo类将不会显示在您的报告中.
半混淆的,如果配置<忽略>让Foo.class </忽略>,然后富仍然会显示在您的报告,但在其他类美孚的用途将被忽略.
如果配置<ignore> Bar.class </ ignore>,则Foo的扫描将忽略Bar初始化的行.
要真正做到这一点,让我们谈谈你为什么要使用忽略.假设您不希望在任何类的代码覆盖率扫描中显示对象(例如Logger).忽略允许你这样做.
maven 插件不包含此配置选项的任何文档(但它们包含在文档中)。ant cobertura 文档包含以下文档:
您可以通过传入“忽略”正则表达式来告诉 Cobertura 忽略某些类。忽略模式可以是任何有效的 perl 5 正则表达式。这将忽略对与忽略正则表达式匹配的任何方法的任何调用。在检测期间它不会跳过这些类。要从检测中排除类,请将它们从文件集中排除,或者使用下面的替代方法并指定 exceptClasses 模式。
另请参阅:https ://github.com/cobertura/cobertura/wiki/Ant-Task-Reference#cobertura-instrument-task
| 归档时间: |
|
| 查看次数: |
7462 次 |
| 最近记录: |