首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Powermock覆盖Emma

使用Powermock覆盖Emma
EN

Stack Overflow用户
提问于 2012-03-06 06:39:47
回答 2查看 2K关注 0票数 4

我们在生成覆盖率报告的项目中配置了emma。在我引入PowerMock来模拟一些静态方法之前,整个设置都工作得很好。

当我用@RunWith(PowerMockRunner.class)注释一个类时,emma尝试再次启动覆盖过程并抛出addressbind异常。我认为maven surefire正在为不同的runner创建一个新的JVM,而emma试图在新的JVM上重新启动。

我尝试了不同的选择,以确保forkMode,但无济于事。Running util.HttpClientFactoryTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.154 sec Running xxx.util.ServiceConnectorUtilTest EMMA: collecting runtime coverage data ... java.net.BindException: Address already in use: JVM_Bind at java.net.PlainSocketImpl.socketBind(Native Method) at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)

一个关于如何解决这个问题的想法?任何帮助都会得到极大的重视。谢谢

EN

回答 2

Stack Overflow用户

发布于 2012-06-27 17:11:35

如果您不指定要使用的emma插件的版本,maven将缺省为

代码语言:javascript
复制
<groupId>org.sonatype.maven.plugin</groupId>
<artifactId>emma-maven-plugin</artifactId>
<version>1.0</version>

如果在build标记中指定最新版本1.2 (或1.1)

代码语言:javascript
复制
<build>
  <pluginManagement>
      <plugins>
          <plugin>
              <groupId>org.sonatype.maven.plugin</groupId>
              <artifactId>emma-maven-plugin</artifactId>
              <version>1.0</version>
          </plugin>
      </plugins>
  </pluginManagement>...

这个问题应该会消失

票数 2
EN

Stack Overflow用户

发布于 2014-04-16 05:25:02

颠簸的emma插件版本可能适用于普通的java项目,但是最新的android版本的com.amazon.yma-droid仍然没有这个修复。

只有当您使用至少两个不同的JunitClassRunners (例如,default和@RunWith(PowerMockRunner.class))时,问题才会出现。当我开始使用RobolectricTestRunner时,我也遇到了同样的问题。解决方法是对模块中的每个测试用例使用相同的JunitClassRunner。例如,使用@RunWith(PowerMockRunner.class),甚至对于没有任何PowerMock的简单JUnits也是如此。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9575149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档