我们在项目中配置了emma,用于生成覆盖率报告.整个设置工作正常,直到我引入PowerMock来模拟一些静态方法.
当我用@RunWith(PowerMockRunner.class)注释一个类时,emma尝试再次启动覆盖进程并抛出addressbind异常.我认为maven surefire正在为不同的跑步者分配一个新的JVM,并且emma尝试在新的JVM上再次启动.
我尝试了针对surefire forkMode的不同选项,但没有帮助.
运行util.HttpClientFactoryTest
测试运行:1,失败:0,错误:0,跳过:0,经过的时间:0.154秒
运行xxx.util.ServiceConnectorUtilTest
EMMA:收集运行时覆盖数据……
java.net.BindException:已在使用的地址:JVM_Bind
at java.net.PlainSocketImpl.socketBind(Native Method)
在java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)
关于如何解决这个问题的想法?任何帮助都很有意义.谢谢
最佳答案 如果你没有指定emma插件的版本,使用maven将默认为
<groupId>org.sonatype.maven.plugin</groupId>
<artifactId>emma-maven-plugin</artifactId>
<version>1.0</version>
如果在build标记中指定最新版本1.2(或1.1)
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.sonatype.maven.plugin</groupId>
<artifactId>emma-maven-plugin</artifactId>
<version>1.0</version>
</plugin>
</plugins>
</pluginManagement>...
问题应该消失