Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Automatic Clover integration in Bamboo does not always work as expected for Maven

Marek Parfianowicz
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
May 8, 2013

"Automatically integrate Clover into this build" switch in Bamboo is great, however it does not always work for Maven-based projects. There are few areas in which you can get stuck:

  1. deploying instrumented application to web server might result in NoClassDefFoundError during test execution
  2. simple unit tests can fail with NoClassDefFoundError if project has multiple Maven modules with inter-dependencies
  3. generation of historical report might fail with an error message like "basedir /home/bamboo/xml-data/build-dir/MY-JOB1/my-module/.cloverhistory is not a directory"

1 answer

1 accepted

0 votes
Answer accepted
Marek Parfianowicz
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
May 8, 2013

ad 1. This can happen when instrumented application is being executed in another JVM. For example, when you deploy code under test to the application server or run in-container tests using maven-cargo-plugin. Instrumented code needs clover.jar in classpath at runtime.

See NoClassDefFound com_cenqua_clover/CoverageRecorder KB article.

 

ad 2. This can happen when one module has a dependency to another one and your Maven task in Bamboo runs tests. For example if Maven task has "clean test" goals defined and the "ModuleA" depends on "ModuleB", then build with Clover will look like:

ModuleB clean
ModuleB test   # run tests without Clover
ModuleB clean
ModuleB clover2:setup
ModuleB verify # run tests with Clover
ModuleB jar    # package classes; instrumented classes are taken!
ModuleA clean
ModuleA test   # run tests without Clover, instrumented ModuleB.jar is taken; 
# test fails with NoClassDefFound error
...
ModuleB clean
ModuleB clover2:setup
ModuleB verify  # run tests with Clover

 

See NoClassDefFound com_cenqua_clover/CoverageRecorder KB article and https://jira.atlassian.com/browse/BAM-13208 improvement request for more details. This has been fixed in Clover 4.0.4 and Bamboo 5.9.

 

ad 3. See Multi-module Maven build on Bamboo with Clover history reports KB article. This has been fixed in Clover 3.1.12 and Bamboo 5.0.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events