I use
this.getClass().getClassLoader().getResourceAsStream(...
rather than using the system classloader and it works in both Eclipse and
Maven.
HTH
----- Original Message -----
From: "Martin Aspeli" <[EMAIL PROTECTED]>
To: <users@maven.apache.org>
Sent: Thursday, June 01, 2006 3:38 PM
Subject: Referencing .properties files in the CLASSPATH in test
Hi guys,
I have some unit tests that do things like this:
InputStream stream =
ClassLoader.getSystemResourceAsStream("TestDBSetup.properties");
assertNotNull("Could not load TestDBSetup.properties from classpath",
stream);
Properties dbProperties = new Properties();
dbProperties.load(stream);
TestDBSetup.properties lives in src/main/test/resources.
In Eclipse, this works fine. However, when I execute mvn test, it doesn't
work. TestDBSetup.properties is no copied to target/test-classes (Eclipse
does it, though). Even if I put it there manually, the ClassLoader can't
find it when I run 'mvn test', presumably because it's not on the
CLASSPATH?
In a similar vein, I have some xml files in src/main/test/java/com/foo/bar
that need to be in the CLASSPATH under target/test-classes/com/foo/bar.
My POM is like so:
<?xml version="1.0"?><project>
<parent>
<artifactId>MyParentProject</artifactId>
<groupId>com.foo.bar</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.foo.bar</groupId>
<artifactId>MyDatabasePackage</artifactId>
<name>MyDatabasePackage</name>
<version>1.1-SNAPSHOT</version>
<url>http://foo.com</url>
<build>
<finalName>MyDatabasePackage</finalName>
<resources>
<resource>
<directory>${build.sourceDirectory}</directory>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
<testResources>
<testResource>
<directory>${build.sourceDirectory}</directory>
<includes>
<include>**/*.properties</include>
</includes>
</testResource>
</testResources>
</build>
<dependencies>
<!-- Common resources -->
<dependency>
<groupId>com.foo.bar</groupId>
<artifactId>MyProductCommon</artifactId>
<version>1.1-SNAPSHOT</version>
</dependency>
<!-- Database connectivity -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>3.1.11</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate</artifactId>
<version>3.1rc3</version>
</dependency>
<!-- Unit testing frameworks -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>dbunit</groupId>
<artifactId>dbunit</artifactId>
<version>2.1</version>
<scope>test</scope>
</dependency>
<!-- In-memory JNDI implementation; used for testing -->
<dependency>
<groupId>directory-naming</groupId>
<artifactId>naming-core</artifactId>
<version>0.8</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>directory-naming</groupId>
<artifactId>naming-factory</artifactId>
<version>0.8</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>directory-naming</groupId>
<artifactId>naming-java</artifactId>
<version>0.8</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Any help greatly appreciated!
Martin
--
View this message in context:
http://www.nabble.com/Referencing+.properties+files+in+the+CLASSPATH+in+test-t1717149.html#a4663313
Sent from the Maven - Users forum at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]