Alright, so being completely honest, I first looked at what you sent and thought it was nuts. However, after getting it to work, it's a much nicer solution (although it may not look it). So, back to my original question, where should I be putting the cmake macros? For now, until I hear better, I'll put them in the rosjava/cmake/rosjava.cmake file on my computer. If they should go somewhere else, let me know, but since Java isn't fully supported, I figured it would be better to keep them out of public and private cmake in rosbuild. If / When I get this to work with ros, I will send out my solution. For now, if anyone else wants this, to get JUnit to work from the command line I just executed the following script: #!/bin/bash #Usage: junit.sh if [ -z "$ANT_HOME" -o ! -d "$ANT_HOME" ] ; then if [ -d /usr/share/ant ] ; then ANT_HOME=/usr/share/ant fi fi # set ANT_LIB location ANT_LIB="${ANT_HOME}/lib" # set the classes for the test case runner and xml format RUNNER=org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner FORMAT=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter # make sure rosjava is on the classpath ROS_JAVA=`rospack find rosjava`/bin # the class path requires the ant jar for exceptions export CLASSPATH=$CLASSPATH:$ROS_JAVA:$ANT_LIB/ant.jar:$ANT_LIB/ant-junit.jar:$ANT_LIB/junit4.jar:$1 java $RUNNER $2 formatter=$FORMAT As an example, one could execute: ./junit.sh . pkg.to.class.ClassNameTest Aaron Holroyd B.S. Computer Science and Robotics Engineering WPI M.S. CS 2011 http://users.wpi.edu/~aholroyd On Tue, Jul 13, 2010 at 14:19, Ken Conley wrote: > You shouldn't have to use the ant command-line tool. Instead, you > should just be able to use Ant's classes to generate the XML files > (the XML format is actually an Ant Junit format). > > The class you probably want is: > > org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter > > You can probably plug this in as a formatter of: > > org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner > > though that's just from scanning the source code; I haven't tried this > myself yet. > > Both JUnit and Ant are open-source projects, so it should be fairly > easy to orchestrate the desired behavior. > > Hope this helps, > Ken > > On Tue, Jul 13, 2010 at 9:09 AM, Aaron Holroyd wrote: > > Hi again, > > I have some updates about the JUnit testing from below. > > After some searching, and talking to someone who works closely with > JUnit, > > I've found that I can not export an XML report directly from a JUnit > call. > > Instead I have to call ant and export it from there. > > This gives me 2 questions: > > 1) In order to write this I would have to invoke ant with a premade ant > file > > which takes as arguments the classes to test. This itself is not hard, > but > > does this sound like a good solution? I would just have to add an ant > build > > file to a known directory. > > 2) If I write this and create a patch, is it ok to add ant to the > > dependencies list for ros, or just for rosjava, or where would this go? > > Which leads to should this be written in the rosjava CMake file, or in > the > > main public / private cmake files in rosbuild? > > I also, probably, will need help eventually with the CMake files, but > I'll > > try them on my own first. I simply have never written CMake, before I > > started using ROS. > > Thanks again, > > Aaron Holroyd > > B.S. Computer Science and Robotics Engineering > > WPI M.S. CS 2011 > > http://users.wpi.edu/~aholroyd > > > > > > On Tue, Jul 6, 2010 at 16:20, Aaron Holroyd wrote: > >> > >> I'll take a look at how to add Java JUnit testing to the rosbuild cmake > >> files first. Whether I get it to work or not, I'll let you know how it > >> goes. > >> > >> As for rostest, I had seen this, but I noticed that it is for C++ and > >> Python only. Once I get CMake JUnit testing to work the rostest should > be > >> fairly straight forward. > >> Aaron Holroyd > >> B.S. Computer Science and Robotics Engineering > >> WPI M.S. CS 2011 > >> http://users.wpi.edu/~aholroyd > >> > >> > >> On Tue, Jul 6, 2010 at 14:04, Brian Gerkey > >> wrote: > >>> > >>> On Tue, Jul 6, 2010 at 7:12 AM, Aaron Holroyd > wrote: > >>> > I would like to start writing some test cases for rosjava code I have > >>> > written. Unfortunately, I can't seem to figure out how this should > be > >>> > done > >>> > with ROS. > >>> > I've been using Eclipse for my development, and I could continue to > >>> > just use > >>> > it's built in testing environment. The only problem with this is > that > >>> > when > >>> > the code is released, the test cases won't work. Are there any other > >>> > suggestions, or a preferred way to do this? > >>> > >>> hi Aaron, > >>> > >>> I don't know enough about Eclipse to give a recommendation there, but > >>> there are two ways that you can test your code at the command-line: > >>> > >>> (1) Use rostest (http://www.ros.org/wiki/rostest). It allows you to > >>> bring up a ROS network, then use a program to run tests against that > >>> network. > >>> > >>> (2) Write standalone unit tests. The ROS build system has support for > >>> running C/C++ (gtest) and Python (pyunit) tests. We don't yet have > >>> support for Java, which I guess would use JUnit. It should be easy to > >>> add support. Look in rosbuild/public.cmake and rosbuild/private.cmake > >>> for how it's done for the other languages. Essentially, you need to > >>> know the command-line that's required to invoke your compiled test > >>> program, including redirection of test results to a particular > >>> location. I can help with the CMake integration if you want. > >>> > >>> Note that, for (1), if you want to write the test program itself in > >>> Java, then you'll also need the new JUnit support described in (2) > >>> (you could write test programs in Python or C++ using the current > >>> infrastructure). > >>> > >>> brian. > >> > > > > > > _______________________________________________ > > ros-users mailing list > > ros-users@code.ros.org > > https://code.ros.org/mailman/listinfo/ros-users > > > > > _______________________________________________ > ros-users mailing list > ros-users@code.ros.org > https://code.ros.org/mailman/listinfo/ros-users >