Feb 16, 2009

Unit Testing Grails in Eclipse


For the past several weeks, I’ve been working on a Grails app in my spare time, and I’m really excited about the future of Grails.  However, I’ve been a bit disappointed in the tooling currently available.  Myself and many of my clients use Eclipse, and at this point the Eclipse support for Grails is less than ideal.


Spring Source’s recent acquistion of G2One will really help move the Eclipse support forward.  Here’s a recent interview with Grails founder Graeme Rocher in which he discusses how Spring Source will help drive Grails tool support within Eclipse.


http://www.grailspodcast.com/blog/id/109


One of the largest frustrations I’ve had with the Eclipse plugin is the setup necessary to run a grails unit test.  After I first setup my grails project in Eclipse, I tried to create a simple groovy unit test and run it.  As with Java unit tests, I right clicked on the class and selected run as junit test.  Each time I ran the test I received the following error.


“Error running MyGroovyTest.groovy failed to find a class file, ensure the Groovy output folder is on the classpath”


After a lot of digging around I was finally able to work through these issues and figure out a way to execute grails unit tests within eclipse.  Here are the steps I used to get the tests working.  


  1. Right-click on the project and select Properties > Groovy Project Properties.
  2. Uncheck “Disable Groovy Compiler Generating Class Files”
  3. Modify the “Groovy compiler output location” to “bin-groovy”
  4. Select “Java Build Path”
  5. Modify the Default Output folder to “/bin” (I need to test this again to see if this step is required).
  6. From the same Java Build Path dialog select Libraries > Add Class Folder…
  7. Check bin-groovy.
  8. Now run the unit test by right clicking on the groovy file and it should work.


It’s quite an involved process, but it works.  If anyone has a simpler solution, I’d be really glad to hear it.  I’m using Eclipse Ganymede, Grails 1.0.4, and Groovy Plugin 1.5.6.200807211457.  


Cleaning up these types of issues within Eclipse will be critical to the success of Grails, and I’m glad to hear that SpringSource and Grails will be focusing their efforts on tooling in the near future.


About the Author

David Reines profile.

David Reines

VP - Technology

David has led the development efforts of several mission-critical enterprise applications in the Twin Cities area. During this time, he has worked very closely with numerous commercial and open source JEE technologies. David has extensive experience in the architecture, design, implementation, deployment and support of highly scalable business applications.

Leave a Reply

Your email address will not be published.

Related Blog Posts
Kafka Schema Evolution With Java Spring Boot and Protobuf
In this blog I will be demonstrating Kafka schema evolution with Java, Spring Boot and Protobuf.  This app is for tutorial purposes, so there will be instances where a refactor could happen. I tried to […]
Redis Bitmaps: Storing state in small places
Redis is a popular open source in-memory data store that supports all kinds of abstract data structures. In this post and in an accompanying example Java project, I am going to explore two great use […]
Let’s build a WordPress & Kernel updated AMI with Packer
First, let’s start with What is an AMI? An Amazon Machine Image (AMI) is a master image for the creation of virtual servers in an AWS environment. The machine images are like templates that are configured with […]
Single Node Kubernetes on Raspberry Pi 4
In this post, I will go through the steps I used to create a single node Kubernetes combination master and worker node on a Raspberry Pi 4. The heavy lifting in this post is done […]