diff --git a/build.gradle b/build.gradle
index 5b6959f..dc96e11 100644
--- a/build.gradle
+++ b/build.gradle
@@ -13,3 +13,22 @@
 		compile group: "org.apache.httpcomponents", name: "httpclient", version: httpcomponentsClientVersion
 	}
 }
+
+project(':test:org.eclipse.virgo.test.launcher') {
+	dependencies {
+		compile project(':util:org.eclipse.virgo.util.parser.launcher')
+		compile group: "org.eclipse.virgo.mirrored", name: "org.eclipse.osgi", version: equinoxVersion, configuration: "compile", ext: "jar"
+		testCompile group: 'junit', name: 'junit', version: junitVersion, configuration: "compile", ext: "jar"
+	}
+}
+
+project(':test:org.eclipse.virgo.test.framework') {
+	dependencies {
+		compile project(':util:org.eclipse.virgo.util.common')
+        compile project(':test:org.eclipse.virgo.test.stubs')
+        compile project(':test:org.eclipse.virgo.test.launcher')
+		compile group: "org.eclipse.virgo.mirrored", name: "org.eclipse.osgi", version: equinoxVersion, configuration: "compile", ext: "jar"
+		testCompile group: 'junit', name: 'junit', version: junitVersion, configuration: "compile", ext: "jar"
+	}
+}
+
diff --git a/org.eclipse.virgo.test.framework/src/main/resources/.gitignore b/org.eclipse.virgo.test.framework/src/main/resources/.gitignore
deleted file mode 100644
index e69de29..0000000
--- a/org.eclipse.virgo.test.framework/src/main/resources/.gitignore
+++ /dev/null
diff --git a/org.eclipse.virgo.test.framework/src/main/java/org/eclipse/virgo/test/framework/base.configuration.properties b/org.eclipse.virgo.test.framework/src/main/resources/org/eclipse/virgo/test/framework/base.configuration.properties
similarity index 100%
rename from org.eclipse.virgo.test.framework/src/main/java/org/eclipse/virgo/test/framework/base.configuration.properties
rename to org.eclipse.virgo.test.framework/src/main/resources/org/eclipse/virgo/test/framework/base.configuration.properties
diff --git a/org.eclipse.virgo.test.launcher/src/test/java/org/eclipse/virgo/test/launcher/LauncherTests.java b/org.eclipse.virgo.test.launcher/src/test/java/org/eclipse/virgo/test/launcher/LauncherTests.java
index ac59bb8..5a8d13b 100644
--- a/org.eclipse.virgo.test.launcher/src/test/java/org/eclipse/virgo/test/launcher/LauncherTests.java
+++ b/org.eclipse.virgo.test.launcher/src/test/java/org/eclipse/virgo/test/launcher/LauncherTests.java
@@ -13,12 +13,14 @@
 
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assume.assumeTrue;
 
 import java.io.File;
 import java.io.IOException;
 
 import org.eclipse.virgo.test.launcher.Launcher;
 import org.junit.Before;
+import org.junit.After;
 import org.junit.Test;
 
 
@@ -27,40 +29,43 @@
 public class LauncherTests {
     
     private static final String SYSTEM_PROPERTY_TMPDIR = "java.io.tmpdir";
+    private static final String TMPDIR = "tmp";
     
-    private static final File TMP_DIR = new File("build/tmp");
+    private static final File TMP_DIR = new File(TMPDIR);
     
     @Before
+    public void setSystemProperty() {
+        System.setProperty(SYSTEM_PROPERTY_TMPDIR, TMPDIR);
+    }
+
+    @After
     public void deleteTmpDir() {
         if (TMP_DIR.exists()) {
-            assertTrue(TMP_DIR.delete());
+            assumeTrue(TMP_DIR.delete());
         }
     }
     
     @Test
     public void creationOfTmpDir() throws IOException {
-        System.setProperty(SYSTEM_PROPERTY_TMPDIR, "build/tmp");
-        
-        assertFalse(TMP_DIR.exists());
+        assumeTrue(!TMP_DIR.exists());
+        // assertFalse(TMP_DIR.exists());
         Launcher.ensureTmpDirExists();
         assertTrue(TMP_DIR.exists());
     }
     
     @Test
     public void noFailureIfTmpDirAlreadyExists() throws IOException {
-        System.setProperty(SYSTEM_PROPERTY_TMPDIR, "build/tmp");
         TMP_DIR.mkdirs();
-        
-        assertTrue(TMP_DIR.exists());
+        assumeTrue(TMP_DIR.exists());
+        // assertTrue(TMP_DIR.exists());
         Launcher.ensureTmpDirExists();
         assertTrue(TMP_DIR.exists());
     }
     
     @Test(expected=IOException.class)
     public void failureIfTmpDirCannotBeCreated() throws IOException {
-        System.setProperty(SYSTEM_PROPERTY_TMPDIR, "build/tmp");
-        assertTrue(TMP_DIR.createNewFile());
-        
+        assumeTrue(TMP_DIR.createNewFile());
+        // assertTrue(TMP_DIR.createNewFile());
         Launcher.ensureTmpDirExists();       
     }
 }
