- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一些单元测试(虽然它们是 Android 测试,但我使用的是 Robolectric
,因此它们在 JVM
上运行)。他们在没有覆盖的情况下快乐地运行。
当我尝试覆盖时,我从 emma-maven 收到这个错误:
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:emma-maven-plugin:1.0-alpha-3:instrument (default-cli) on project android: Execution default-cli of goal org.codehaus.mojo:emma-maven-plugin:1.0-alpha-3:instrument failed: class [com.larvalabs.svgandroid.ParserHelper] appears to be instrumented already
重要的一点是class ....似乎已经被检测
。
很难找到合适的文档,但这是我从各种来源拼凑的配置文件:
<plugin>
<!-- This doesn't work, see below for a working configuration -->
<groupId>org.codehaus.mojo</groupId>
<artifactId>emma-maven-plugin</artifactId>
<version>1.0-alpha-3</version>
<inherited>true</inherited>
<executions>
<execution>
<phase>process-classes</phase>
<configuration>
<filters>
<filter>-com.viewpagerindicator.*</filter>
<filter>-com.actionbarsherlock.*</filter>
<filter>-com.larvalabs.svgandroid.*</filter>
</filters>
</configuration>
<goals>
<goal>instrument</goal>
</goals>
</execution>
</executions>
</plugin>
问题是,排除了它提示的那些包(我认为问题是这些 Android 库项目无意中在某些路径列表中结束了两次),它现在提示我自己的包。
一位同事错误地建议上面的
事实证明
最佳答案
我找到了一个解决方案 - 非常简单。
忘记 pluginManagement 的东西:只有通过忽略/this/pom 的过滤器才能“工作”,但将它们应用于任何子 pom:http://maven.apache.org/pom.html#Plugin_Management
只需将配置元素移出 executions block ,然后删除 executions block 。 http://maven.apache.org/guides/mini/guide-configuring-plugins.html#Generic_Configuration
配置部分紧接在插件元素内,运行“mvn -X emma:emma”显示列出的过滤器。由于每个排除行都改变了我看到的错误,我推断它正在排除。 (我收集到包括,您添加带有 + 前缀的过滤器以覆盖上述 - 前缀的部分。)
<project>
<build>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>emma-maven-plugin</artifactId>
<version>1.0-alpha-3</version>
<!-- inherited>true</inherited -->
<configuration>
<filters>
<filter>-com.viewpagerindicator.*</filter>
<filter>-com.actionbarsherlock.*</filter>
<filter>-com.larvalabs.svgandroid.*</filter>
</filters>
<!-- verbose>true</verbose -->
</configuration>
</plugin>
就问题中隐含的 Android 部分而言(这实际上使过滤对我来说毫无意义),因为 Android 需要一个单独的 APK 来进行测试并运行主应用程序 APK,所以您根本不需要运行 Android来自同一项目的集成测试:android 插件希望您从单独的项目中创建集成测试 APK——通常是同一父 pom 文件下的同级项目。在 android 插件页面上隐藏了一个 zip 中的示例/示例项目 - http://code.google.com/p/maven-android-plugin/wiki/Samples - 您应该在其中搜索“覆盖范围”并将其更改为:
<coverage>true</coverage>
到配置 - 几个样本有它,但被注释掉了。我分心了,所以不记得这是否有效,但显然应该有效。
由于我们不想在项目的现有源代码管理中插入目录级别,因此我们创建了名为“parent”和“integration”的目录作为应用程序 pom.xml 的对等目录,使用“parent”来保存父 pom ,以及用于集成测试的“集成”,此部分告诉 app/pom.xml 使用 app/parent/pom.xml:
<project>
<parent>
<groupId>our.group.id</groupId>
<artifactId>base</artifactId>
<relativePath>parent</relativePath>
<version>3.9.0</version>
</parent>
这在 app/integration/pom.xml 中:
<project>
<parent>
<groupId>our.group.id</groupId>
<artifactId>base</artifactId>
<relativePath>../parent</relativePath>
<version>3.9.0</version>
</parent>
关于android - 我如何排除类被 maven-emma 插件检测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9502656/
我有一个名为“members”的数据库表。分配给成员的是一个职位。 职位 来自部门。我有 Departments,然后是那些中的 Sub-Departments 和 Sub-Departments 中
我正在尝试为 Solr 搜索应用过滤器标记 Tagging_and_excluding_Filters . 挑战在于同时应用多个标记(对于单个页面上的多个选择选项)。例如 q=mainquery&fq
我知道这个问题已经被问过很多次了,我已经尝试了所有建议,并阅读了有关不同选择器等的所有内容,但没有任何对我有用 给出以下 HTML 片段: link
是否有直接的 LINQ 语法来查找集合 B 中不存在的集合 A 的成员?在 SQL 我会写这个 SELECT A.* FROM A LEFT JOIN B ON A.ID = B.ID WHERE B
我试图排除并在现有xpath中包括以下xpath,但不太确定如何做到这一点 //exclude -> //*[@id="ires"]/ol/li[6]/div/a[1]/img //include
我有 30 个站点,我需要在其中 24 个站点上回显某些内容。我怎样才能排除其他人?该代码不起作用,因为我认为它的逻辑是假的:) $currentsite = get_bloginfo('wpurl'
我需要对目标文件夹进行检查,并检查文件是否来自今天,并且超过5kb 下面的命令根据使用今天的日期存在的文件来提供bool值,但是我还要添加-gt5kb之类的排除项 我尝试使用-Exlcude,但不确定
我编入索引的Elasticsearch文档包含许多字段。我一直在使用match_all查询来获取结果。我想从match_all中排除一些字段,这可能吗? 最佳答案 在Elasticsearch中,您可
我正在为我的 DAO 编写一些测试,因为很多测试使用保存到我的数据库中的测试对象,所以我使用注释 @Before 和 @Before 创建了 setup() 和teardown() 方法@After
我编写了一个程序来解决以下问题: Implement a diffusion limited aggregation simulation on a toroid plane where seeds
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
很多时候我必须运行这个查询: select * from users where name is not null and name != '' 有没有更好的方法来做到这一点。我需要更多的性能,任何建
如果检测到某个操作系统,是否有一种简单的方法可以排除某些代码? 我设计了一个运行良好的网站(它是一个 sidescroller),当使用滚轮(向上/向下)时,它会左右滚动。但是,如果您使用的是 Mac
我应该如何排除“IN”子句中的值? $Graduates = "45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,6
很明显,如果一个 Mysql 表的全文索引包含一个出现在 50% 的数据行中的关键字,该关键字将被匹配查询忽略 因此,如果我有一个包含 50 个条目的全文索引“content”的表其中 27 个条目在
我有下面的循环。 我需要提取所有不包含字母 p 的名称 (lskey),但我的尝试不起作用。 for(var i = 0; i "); } } 如果有人能回答,我将不胜感激。 最佳答案 如此接
我正在尝试查找 FTP 服务器上根目录的总大小。但是,我无权访问根目录中的其中一个目录。 我想用这个函数对根目录的大小求和: size = 0 for filename in ftp.nlst("."
我有以下正则表达式来匹配 html 链接: 有点效果。除了不是真的。因为它在 编辑: 这将使它只抓取引号而不是 之后的所有内容 最佳答案 我认为您的正则表达式没有按照您的意愿行事。 这会非贪婪地捕
我在提出异常方面遇到困难,例如: import csv o = open('/home/foo/dummy.csv', 'r') # Empty file! reader = csv.reader(o
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我是一名优秀的程序员,十分优秀!