diff --git a/querydsl-maven-plugin/pom.xml b/querydsl-maven-plugin/pom.xml
index 18452efa4..30a516c75 100644
--- a/querydsl-maven-plugin/pom.xml
+++ b/querydsl-maven-plugin/pom.xml
@@ -46,7 +46,17 @@
org.slf4j
slf4j-log4j12
1.6.1
-
+
+
+
+
+
+ com.h2database
+ h2
+ 1.2.133
+ test
+
+
diff --git a/querydsl-maven-plugin/src/test/java/com/mysema/query/maven/MetadataExportMojoTest.java b/querydsl-maven-plugin/src/test/java/com/mysema/query/maven/MetadataExportMojoTest.java
new file mode 100644
index 000000000..64ef223f8
--- /dev/null
+++ b/querydsl-maven-plugin/src/test/java/com/mysema/query/maven/MetadataExportMojoTest.java
@@ -0,0 +1,44 @@
+package com.mysema.query.maven;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+import java.lang.reflect.Field;
+import java.util.Collections;
+
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.project.MavenProject;
+import org.junit.Test;
+
+public class MetadataExportMojoTest {
+
+ private final String url = "jdbc:h2:mem:testdb" + System.currentTimeMillis();
+
+ @Test
+ public void Execute() throws SecurityException, NoSuchFieldException, IllegalAccessException, MojoExecutionException, MojoFailureException {
+ MavenProject project = new MavenProject();
+ MetadataExportMojo mojo = new MetadataExportMojo();
+ set(mojo, "project", project);
+ set(mojo, "jdbcDriver", "org.h2.Driver");
+ set(mojo, "jdbcUrl", url);
+ set(mojo, "jdbcUser", "sa");
+ set(mojo, "namePrefix", "Q"); // default value
+ set(mojo, "packageName", "com.example");
+ set(mojo, "targetFolder", "target/export");
+
+ mojo.execute();
+
+ assertEquals(Collections.singletonList("target/export"), project.getCompileSourceRoots());
+ assertTrue(new File("target/export").exists());
+
+ }
+
+ private void set(Object obj, String fieldName, Object value) throws SecurityException, NoSuchFieldException, IllegalAccessException{
+ Field field = AbstractMetaDataExportMojo.class.getDeclaredField(fieldName);
+ field.setAccessible(true);
+ field.set(obj, value);
+ }
+
+}