Java – Cobertura on Tomcat

coberturacode-coveragejavatomcat

I'm trying to apply code coverage using Cobertura. The app is
deployed in Tomcat 5, but when I instrument the .class files, the
app stops working.

This are my steps:

  • Compile the app (This run in tomcat)
  • Instrument the class files.

    D:\test\cobertura-1.9.4.1\cobertura-instrument.bat --destination D:\test\instrument D:\src\path_to_app\main\target\webapp
    
  • Overwrite the class files of D:\src\path_to_app\main\target\webapp
    with the instrumented class files in D:\test\instrument.

  • Deploy the app in Tomcat via Catalina conf or by a war file. (The
    app does not work)

Does someone have the correct steps for correctly deploying an app in Tomcat
with the classes instrumented by Cobertura?

Reference: http://cobertura.sourceforge.net/faq.html

I'm using cobertura-1.9.4.1

Best Answer

The correct steps were:

  • Compile the app
  • Instrument the class files. D:\test\cobertura-1.9.4.1\cobertura-instrument.bat --destination D:\test\instrument D:\src\path_to_app\main\target\webapp (a cobertura.ser its created)

  • Overwrite the class files of D:\src\path_to_app\main\target\webapp with the instrumented class files in D:\test\instrument.

  • Copy the cobertura.jar to WEB-INF/lib
  • Deploy the app in Tomcat directly or by a war file.
  • Copy the cobertura.ser to the current dir of tomcat (tomcat/bin or system32, or else you will see the path in the error logs)
  • Use the app, and stop the tomcat server.
  • Build the report with the updated cobertura.ser(in system32 or ...) (at least for me, the size does not change)

Reference: - http://cobertura.sourceforge.net/faq.html - JB Nizet answer

Related Topic