On Aug 5, 2004, at 10:19, Eric Hauser wrote:

I running some unit tests with Maven during my build process using Hypersonic in-memory mode as the datasource. I generating the schema from Hibernate and then loading the schema in a preGoal for test:test using the ant:sql tags. The problem that I am having is every time the unit test runs, Hypersonic cannot seem to find the tables that I just loaded. Anyone have an example code that does something similar? Thanks.

We don't generate the database schema as part of the test goal; instead, the Hypersonic database script is an original source and stored in version control. Other than that, I think we're doing something similar to what you're trying to do.


The problem we ran into was that Maven has no well-defined current directory from which to specify a relative path to the database script. Normally, this would mean that you'd have to specify an absolute path, which is generally a Bad Idea.

I got around this by modifying the datasource configuration properties file in a pregoal for test:test:

  <preGoal name="test:test">
    <ant:copy todir="${maven.build.dir}/test-classes" overwrite="true" >
      <ant:fileset dir="${maven.src.dir}/test/conf">
        <ant:include name="datasource.properties" />
      </ant:fileset>
      <ant:filterset>
        <ant:filter token="BUILDDIR" value="${maven.build.dir}" />
      </ant:filterset>
    </ant:copy>
  </preGoal>

The datasource configuration properties file contains (in part):

  testPool.jdbc.driver=org.hsqldb.jdbcDriver
  testPool.jdbc.url=jdbc:hsqldb:@BUILDDIR@/testdb

The glue between the datasource configuration properties and the code that uses the datasource I can't show you, unfortunately. But as long as you're defining the connection parameters in a configuration file (and you should be :-), you should be able to do something similar.

Hope this helps.

--
Craig S. Cottingham
[EMAIL PROTECTED]
OpenPGP key available from:
http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x7977F79C


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to