Skip to content

Plugin not working with forked execution in Grails 2.3 #11

@jefferysmith

Description

@jefferysmith

The code coverage report doesn't seem to get generated when using the new forked execution introduced in Grails 2.3.
To reproduce the issue (tried on both windows and linux):

  1. create a new Grails 2.3.0 application
  2. create a simple domain class with a unit test
  3. install the latest code-coverage plugin (v1.2.6)
  4. run grails test-app -coverage
  5. the coverage report is not generated

As a workaround, you can turn off the forked execution and the code-coverage report is created.

The default Grails 2.3.0 settings in conf/BuildConfig.groovy for forking a new process:

grails.project.fork = [
    // configure settings for the test-app JVM, uses the daemon by default
    test: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, daemon:true],
    ...
]

Then the console output includes:

| Instrumenting classes for coverage     
| Instrumenting classes for coverage.    
| Instrumenting classes for coverage..   
| Instrumenting classes for coverage...  
| Instrumenting classes for coverage.... 
| Instrumenting classes for coverage.....
...
Flushing results...                           
Flushing results done                         
Cobertura: Loaded information on 54 classes.  
Cobertura: Saved information on 54 classes.   
Flushing results...                           
Flushing results done     
...                    

If you change the setting to

grails.project.fork = [
   test: false,
   ...
]

Then the console output is as follows - and the reports are generated:

| Instrumenting classes for coverage     
| Instrumenting classes for coverage.    
| Instrumenting classes for coverage..   
| Instrumenting classes for coverage...  
| Instrumenting classes for coverage.... 
| Instrumenting classes for coverage.....
...
Flushing results...                                                                                                           
Flushing results done                                                                                                         
Cobertura: Loaded information on 54 classes.                                                                                  
Cobertura: Saved information on 54 classes.                                                                                   
Done with post processing reports in 10ms                                                                                     
| Cobertura Code Coverage Complete (view reports in: E:\work\coverage-example\target\test-reports/cobertura)                                                                                                                            
Flushing results...                                                                                                           
Flushing results done 

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions