【发布时间】:2014-06-27 15:49:32
【问题描述】:
我有一个 Android 项目,运行 EMMA 以在 Jenkins 构建上覆盖代码。
我的问题是设置一个排除 R.java 的过滤器,而不排除任何其他 R* 包和类。
这是我的包布局:
com.akodiakson.base (this pkg and two files come from the gen folder, not an actual part of the code base)
--R.java
--BuildConfig.java
com.akodiakson.base.alpha
com.akodiakson.base.beta
com.akodiakson.base.champ
--Repeat.java
(many other packages)
com.akodiakson.base.roger
(many other packages)
这是我的 EMMA 过滤器:
<property name="emma.filter" value ="
+*.akodiakson.base.*,
-*.akodiakson.base.*R*"/>
但是,这会无意中排除 com.akodiakson.base.roger 和 Repeat.java
理想情况下,我只需要显式排除“com.akodiakson.base”,而不必显式包含任何其他 R*.java 类和包(有关非理想的显式所有过滤器,请参见下文)。
这并不理想(不包括罗杰):
<property name="emma.filter" value ="
+*.akodiakson.base.*,
-*.akodiakson.base.*R*",
+*.akodiakson.base.roger.*,
+*.akodiakson.base.Repeat"/>
我尝试了很多组合,但运气不佳,包括:
-*akodiakson.base.R$
-*akodiakson.base.R.java
-~.*\.R\$.*
我在这里和“6.2.覆盖过滤器”看到了所有的规范帖子
此过滤器位于我的测试项目的构建文件中。
有什么智慧之言吗?
【问题讨论】:
标签: android jenkins code-coverage emma