我正在研究关于开展的Cobertura代码覆盖在运行一个Java Web应用程序,我读到一篇文章,http://www.mojohaus.org/cobertura-maven-plugin/instrumentingDeploymentArtifact.html的Cobertura运行时覆盖
我遵循的步骤,并能得到一个小覆盖报告maven web应用程序,我在JBoss服务器上部署了一个war文件(包含单个模块),并手动浏览已部署的应用程序。
现在,当我遵循相同的程序和步骤为更大的应用程序,我们需要在相同的安装程序上部署ear文件(包含多个模块的war文件),然后手动打开应用程序服务,但我无法得到它的任何保险。最初创建一个空的cobertura.ser文件,但它不会被更新。
如果在使用ear/war或其他任何需要在JBoss服务器中配置的问题请让我知道。
预先感谢
关停JBoss服务器我得到下面的错误。 10:45:58,693 ERROR [stderr](线程-67)线程“Thread-67”中的异常java.lang.IllegalAccessError:尝试访问类net.sourceforge.cobertura.coveragedata.TouchCollector $ netToolCollector $ ApplyToClassDataLightClassmapListener net.sourceforge .cobertura.coveragedata.TouchCollector 我正在使用cobertura-2.1.1.jar – Ayush
您试过两种选择中的哪一种?如果前者,JBoss类卸载可能会阻碍,例如,如果您的cobertura jar包含在EAR中,那么它将被取消部署,并且在关闭挂钩之前卸载类(或同时发生)。 WAR解决方案在这种情况下可能会更好,或者尝试将Cobertura运行时jar放在jboss/server/main/lib /文件夹中。 –
我能够通过将cobertura jar降级到cobertura-2.0.3.jar来删除讨论的错误。 现在,除了我无法收集覆盖率数据外,所有步骤都正常工作。我甚至尝试了-Djboss.shutdown.forceHalt = false以及http:// HOST:PORT/coberturaFlush/flushCobertura,但没有一个步骤成功。 – Ayush