Well first off, this is really an integration test... So I would switch to have failsafe run the tests: ie add failsafe:integration-test and failsafe:verify to your project's lifecycle (perhaps even in a profile)
Then I would use http://maven.apache.org/surefire/maven-failsafe-plugin/integration-test-mojo.html#additionalClasspathElementsin multiple executions of the failsafe:integration-test config to add the different directories for each environment that you want to test against So you would have: * an execution of failsafe:verify bound to the verify phase to check all the aggregate results * an execution of failsafe:integration-test bound to the integration-test phase with additionalClasspathElements pointing to src/test/oracle-resources which has a test-context.xml pointing to the oracle DB * an execution of failsafe:integration-test bound to the integration-test phase with additionalClasspathElements pointing to src/test/db2-resources which has a test-context.xml pointing to the DB2 DB. Etc It's not completely ideal in that you are hard-coding the DB connection detail in source control... If I were doing it I would seek to either only enable the DB-specific integration tests based on the existence of the corresponding test-context.xml (profile activation) source control would have a test-config.xml.template and ignore the test-config.xml so that I can have my own local test env that is separate from yours and we are not fighting over who's test-config.xml to merge... Or I would use resource filtering to inject the config by properties (activating the profile based on the presence of the property). The second route would probably be more verbose so I would probably write a helper plugin... Haven't needed to do that yet, hence I haven't written such a plugin ;-) HTH - Stephen On Friday, 23 May 2014, Gordon Cody <gordon.c...@zafin.com> wrote: > We have to begin running junit tests using more than 1 database type. I am > wondering how best to run all unit tests using oracle then run all of the > tests again using db2 then postgres. I figured some of you out there must > have a similar requirement. > > Currently we have test/resources/test-context.xml that contains > <bean id="dataSource" > class="org.apache.commons.dbcp.BasicDataSource" > destroy-method="close" lazy-init="true"> > <property name="driverClassName" > value="com.p6spy.engine.spy.P6SpyDriver" /> > <property name="url" value="jdbc:oracle:thin:@localhost:1521:xxxx" > /> > <property name="username" value="xxxxx" /> > <property name="password" value="xxxxx" /> > <property name="accessToUnderlyingConnectionAllowed" value="true" > /> > <property name="defaultAutoCommit" value="false" /> > <property name="maxWait" value="0" /> > <property name="maxActive" value="-1" /> > </bean> > > There is nothing in the pom.xml explicitly related to unit tests other than > <dependency> > <groupId>junit</groupId> > <artifactId>junit</artifactId> > <version>4.8.2</version> > </dependency> > > Quick sanity builds are done by our CI system using > mvn package -e -Dmaen.test.skip=true > Due to how long the tests take to complete they are only run daily using > mvn test -e -Dtest=com.zafinlabs.someapp.somemodule.TestSomeProcess > > Suggestions please. > -- > Best Regards, Gord Cody > > Release Manager Zafin Labs Americas Inc. > 179 Colonnade Road-Suite 100, Ottawa ON, Canada > Phone: +1 (613) 216-2504 Fax: +1 (613) 688-1374 Mobile: +1 613-601-2734 > Web: http://zafin.com Email: gordon.c...@zafin.com <javascript:;> > > -- > Zafin - Canada > > -- > http://zafin.com > > <http://zafin.com/> > > ------------------------------ > > Connect with us > > <http://www.youtube.com/user/ZafinGlobal> < > http://www.linkedin.com/company/Zafin> > <http://twitter.com/Zafin> > > News and Events > > Zafin among Top 10 FinTech Companies to Watch in 2014: American Banker< > http://zafin.com/zafin-among-top-10-fintech-companies-to-watch-in-2014-american-banker/ > > > -- Sent from my phone