我一直在嘗試使用Cobertura和Junit爲我的Web應用程序生成代碼覆蓋,但遇到了問題。我的webapp是一個部署在WebSphere Liberty Profile上的Java Web應用程序。我按照這裏提到的步驟:https://github.com/cobertura/cobertura/wiki/FAQ#using-cobertura-with-a-web-application使用Cobertura進行部署在WebSphere Liberty Profile上的Junit測試webapp
我的步驟如下:使用的Cobertura儀器Ant任務
- 儀器類。在我的Web應用程序的lib文件夾
- 認沽cobertura.jar(以便它在classpath)
- 開始自由
- 運行Junits(JUnit的運行在比自由JVM等不同的JVM)
問題是,當我停止自由時,cobertura.ser文件不會生成。我已經嘗試了「黑客」這裏提到: https://github.com/cobertura/cobertura/wiki/FAQ#using-cobertura-with-a-web-application
它似乎工作(我居然得到了一些報道的信息),但我看到的是,cobertura.ser文件中被重複初始化爲零大小,然後大小增加到一些數字,所以我有點猶豫使用這個。而且,這需要代碼本身的改變,並且取決於被調用的註銷代碼,這對於自動化來說不太理想。
但我更感興趣的是對於WebSphere自由的設置,如JBoss的
-Djboss.shutdown.forceHalt=false
描述特別的一個,一個JVM設置,將允許的Cobertura檢測由自由曲線稱爲JVM關閉掛鉤。 WebSphere/Liberty是否有這樣的設置?
嗨, 對我來說,我看不到cobertura.ser文件。爲了生成這個,我不得不在代碼中進行破解:https://github.com/cobertura/cobertura/wiki/FAQ#using-cobertura-with-a-web-application 我已經能夠使用JaCoCo。版本0.7.6不起作用,我需要使用版本0.7.2。現在,這將爲我完成這項工作。 謝謝 – Anton