Last night I changed the global (reactor) build to no longer fork unit
tests by default. The following modules have tests that will not
complete without forking:
axis
j2ee
j2ee-schema
network
remoting
security
system
transaction
Of these modules, I believe that only the system module has tests must
be forked. The rest of the modules seem to be failing because the
tests assume that the vm has been launched in the module directory, and
open files using relative paths.
I have already fixed the connector module which had this problem by
introducing a new system property using these entries in module
project.properties file:
# Pass basedir of this module as a system property to tests
maven.junit.sysproperties=geronimo.test.basedir
geronimo.test.basedir=${basedir}
Then in the tests, I use this entry to determine the base directory
module:
private static final File basedir = new File(
System.getProperty("geronimo.test.basedir",
System.getProperty("user.dir")));
Using this, we should be able to execute the tests from the global
(reactor) build, on an individual module basis, and from an ide
(assuming the test runner is executed from the module dir or you
explicitly set the geronimo.test.basedir system property).
If you would like to help with the conversion to non-forked tests,
please let everyone know which module you are working on.
-dain
--
Dain Sundstrom
Chief Architect
Gluecode Software
310.536.8355, ext. 26