I’ve got Hudson running on TOMCAT, it can build my Netbeans project using the ant build.xml, but it won’t run any of my unit tests because of what I assume is a problem with the classpath:
package org.junit does not exist
[javac] import org.junit.After;
[javac] ^
But I’ve got the junit-4.8.1.jar on the classpath in /etc/environment and I can successfuly run the junit tests from a console using
java org.junit.runner.JUnitCore org.junit.tests.AllTests
My CLASSPATH is set to /home/bedwyr/junit4.8.1/junit-4.8.1.jar:.
Am I going wrong somewhere or is there anything else I need to set?
[edit]
What I did was to export/include (using the ide) all libraries (including Junit) hudson then reads all it needs from the subversion repo.
I then ran into an issue with exposing hudson to the internet, and pretty soon gave up on tomcat on ubuntu server (again, to do with the tomcat security manager) – glassfish is a lot smoother and that’s where I am now – apache front end with ajp_proxy to hudson on glassfish.
You need to properly set your classpath whether you’re using Ant or Maven to perform your build.
Using Ivy with Ant or switching your build to Maven will allow the build to automatically lookup dependencies and properly set the classpath. If neither of those is an option you need to do something similar to the following in Ant.
The build.properties part will allow you to override the default junit-home if it is different for individuals and hudson.
Another way to modify properties is when invoking Ant from Hudson there is an advanced section which allows you to pass a properties file or a properties form which would allow you to enter key value pairs in the following format: