我正在研究關於開展的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