我使用Spring JavaConfig来定义我的Spring配置。由于单元测试使用的是与生产代码不同的Spring配置,因此当我在单元测试中使用Clover代码覆盖时,生产配置显示为100%未覆盖。
我可以使用@Configuration
注释来标识所有这些类。或者,我可以使用@Bean
注释来标识这些类中的所有方法。
是否有Clover exclude
或代码上下文过滤器,我可以设置为使用这些注释全局排除代码?我使用maven-clover2-plugin
来运行Clover。
答案 0 :(得分:2)
目前Clover允许使用五种方法从覆盖率测量中排除代码:
排除整个文件
排除某些方法
排除某些陈述
排除某些代码块
排除任意来源行
您可以在源代码中输入 // CLOVER:OFF 和 // CLOVER:ON 内联注释
不幸的是,目前无法排除给定的类。但是,我可以看到一些可用的解决方法:
在要排除的类周围添加// CLOVER:OFF和// CLOVER:ON注释。
排除整个文件
将这些@Configuration类视为测试代码。
这是一个黑客。 Clover允许声明哪些类是测试类。匹配基于文件名,类签名和测试签名。请参阅< clover-setup> /< testsources> /< testclass>标签。在此testclass标记中,您可以定义与整个类签名匹配的正则表达式。在你的情况下,它可能是:
<testclass annotation=".*@Configuration.*"/>
虽然这不会禁用这些类的代码检测,但它们将被视为测试代码,它们不应该对应用程序代码度量标准有所贡献。
请注意,Clover分别计算应用程序和测试代码的代码度量标准。
参考文献: