diff --git a/src/test/scala/leon/test/LeonTestSuite.scala b/src/test/scala/leon/test/LeonTestSuite.scala
index fec6f08f9056fa59fde72acf9541d6afcce922b1..fedf6ceff80a892d7288c8b67bc83da50b5c3941 100644
--- a/src/test/scala/leon/test/LeonTestSuite.scala
+++ b/src/test/scala/leon/test/LeonTestSuite.scala
@@ -1,8 +1,9 @@
 /* Copyright 2009-2014 EPFL, Lausanne */
 
-package leon
-package test
+package leon.test
 
+import leon._
+import leon.{LeonContext,Settings}
 import leon.utils._
 
 import scala.io.Source
@@ -14,6 +15,12 @@ import org.scalatest.exceptions.TestFailedException
 import java.io.File
 
 trait LeonTestSuite extends FunSuite with Timeouts with BeforeAndAfterEach {
+  
+  // Hard-code output directory, for Eclipse purposes
+  def outputDirHard(path : String) = new File("target/scala-2.10/test-classes/regression/" + path)
+  // Hard-code resource directory, for Eclipse purposes
+  val resourceDirHard = "src/test/resources/regression/"
+  
   def now() = {
     System.currentTimeMillis
   }
@@ -129,18 +136,35 @@ trait LeonTestSuite extends FunSuite with Timeouts with BeforeAndAfterEach {
     }
   }
 
-  private val all : String=>Boolean = (s : String) => true
+  protected val all : String=>Boolean = (s : String) => true
 
-  def filesInResourceDir(dir : String, filter : String=>Boolean = all) : Iterable[File] = {
+ 
+  def resourceDir(dir : String) : File = {
     import scala.collection.JavaConversions._
 
     val d = this.getClass.getClassLoader.getResource(dir)
 
     if(d == null || d.getProtocol != "file") {
-      assert(false, "Tests have to be run from within `sbt`, for otherwise the test files will be harder to access (and we dislike that).")
+      // We are in Eclipse. The only way we are saved is by hard-coding the path
+      new File(resourceDirHard + dir)
+    }
+    else {
+      new File(d.toURI())
     }
+  }
+
+
+  
+  
+  def filesInResourceDir(dir : String, filter : String=>Boolean = all) : Iterable[File] = {
+    import scala.collection.JavaConversions._
+
+    val d = this.getClass.getClassLoader.getResource(dir)
 
-    val asFile = new File(d.toURI())
+    val asFile = if(d == null || d.getProtocol != "file") {
+      // We are in Eclipse. The only way we are saved is by hard-coding the path
+      new File(resourceDirHard + dir)
+    } else new File(d.toURI())
 
     asFile.listFiles().filter(f => filter(f.getPath()))
   }
diff --git a/src/test/scala/leon/test/TestSilentReporter.scala b/src/test/scala/leon/test/TestSilentReporter.scala
index 7f2fb45aec47598d19979b6bae9eac0d1e705187..47e3d83a7a8f42e01f3cbb86ddbca765daaa1228 100644
--- a/src/test/scala/leon/test/TestSilentReporter.scala
+++ b/src/test/scala/leon/test/TestSilentReporter.scala
@@ -1,7 +1,7 @@
 /* Copyright 2009-2014 EPFL, Lausanne */
 
-package leon
-package test
+package leon.test
+import leon.{DefaultReporter,Settings}
 
 class TestSilentReporter extends DefaultReporter(Settings()) {
   var lastErrors: List[String] = Nil
diff --git a/src/test/scala/leon/test/evaluators/EvaluatorsTests.scala b/src/test/scala/leon/test/evaluators/EvaluatorsTests.scala
index 055eb3ed62107fdf20b51140139a9fccdfa9f0bd..402cf0225843e10ab5345292b47d6c649644ec1e 100644
--- a/src/test/scala/leon/test/evaluators/EvaluatorsTests.scala
+++ b/src/test/scala/leon/test/evaluators/EvaluatorsTests.scala
@@ -1,11 +1,9 @@
 /* Copyright 2009-2014 EPFL, Lausanne */
 
-package leon.test
-package evaluators
+package leon.test.evaluators
 
 import leon._
-
-import leon.evaluators._
+import leon.evaluators._ 
 
 import leon.utils.{TemporaryInputPhase, PreprocessingPhase}
 import leon.frontends.scalac.ExtractionPhase
@@ -15,7 +13,7 @@ import leon.purescala.Definitions._
 import leon.purescala.Trees._
 import leon.purescala.TypeTrees._
 
-class EvaluatorsTests extends LeonTestSuite {
+class EvaluatorsTests extends leon.test.LeonTestSuite {
   private implicit lazy val leonContext = testContext
 
   private val evaluatorConstructors : List[(LeonContext,Program)=>Evaluator] = List(
@@ -446,7 +444,7 @@ class EvaluatorsTests extends LeonTestSuite {
   }
 
   test("Infinite Recursion") {
-    import codegen._
+    import leon.codegen._
 
     val p = """|object Program {
                |  import leon.lang._
@@ -462,7 +460,7 @@ class EvaluatorsTests extends LeonTestSuite {
   }
 
   test("Wrong Contracts") {
-    import codegen._
+    import leon.codegen._
 
     val p = """|object Program {
                |  import leon.lang._
diff --git a/src/test/scala/leon/test/purescala/DataGen.scala b/src/test/scala/leon/test/purescala/DataGen.scala
index 9259e483a9af05a2516a78b366276c2f5120a2f1..f537a06a3bf6b732901a7ec25e3133f572166780 100644
--- a/src/test/scala/leon/test/purescala/DataGen.scala
+++ b/src/test/scala/leon/test/purescala/DataGen.scala
@@ -1,9 +1,9 @@
 /* Copyright 2009-2014 EPFL, Lausanne */
 
-package leon.test
-package purescala
+package leon.test.purescala
 
 import leon._
+import leon.test._
 import leon.utils.{TemporaryInputPhase, PreprocessingPhase}
 import leon.frontends.scalac.ExtractionPhase
 
diff --git a/src/test/scala/leon/test/purescala/LikelyEq.scala b/src/test/scala/leon/test/purescala/LikelyEq.scala
index 1fd61a4c56ad4921a3437fd628c32a08d803fa31..7c45186ec72956260dd7d6a774f875952aef623e 100644
--- a/src/test/scala/leon/test/purescala/LikelyEq.scala
+++ b/src/test/scala/leon/test/purescala/LikelyEq.scala
@@ -1,9 +1,9 @@
 /* Copyright 2009-2014 EPFL, Lausanne */
 
-package leon.test
-package purescala
+package leon.test.purescala
 
 import leon._
+import leon.test._
 import leon.evaluators._
 import leon.purescala.Common._
 import leon.purescala.Definitions._
diff --git a/src/test/scala/leon/test/purescala/LikelyEqSuite.scala b/src/test/scala/leon/test/purescala/LikelyEqSuite.scala
index 1a5cf7e5418f2f8b1d916322637b934219351c1a..0901ecd2dd430e53d7c1bc152215628e0115f90b 100644
--- a/src/test/scala/leon/test/purescala/LikelyEqSuite.scala
+++ b/src/test/scala/leon/test/purescala/LikelyEqSuite.scala
@@ -1,8 +1,9 @@
 /* Copyright 2009-2014 EPFL, Lausanne */
 
-package leon.test
-package purescala
+package leon.test.purescala
 
+import leon._
+import leon.test._
 import leon.purescala.Common._
 import leon.purescala.Trees._
 
diff --git a/src/test/scala/leon/test/purescala/TransformationTests.scala b/src/test/scala/leon/test/purescala/TransformationTests.scala
index 2a126a2443763ab18f1c2efd5b8068d126a87ce3..4575865d74661439fbaf0aac04b7202096d5f89c 100644
--- a/src/test/scala/leon/test/purescala/TransformationTests.scala
+++ b/src/test/scala/leon/test/purescala/TransformationTests.scala
@@ -1,9 +1,9 @@
 /* Copyright 2009-2014 EPFL, Lausanne */
 
-package leon.test
-package purescala
+package leon.test.purescala
 
 import leon._
+import leon.test._
 import leon.utils.{TemporaryInputPhase, PreprocessingPhase}
 import leon.frontends.scalac.ExtractionPhase
 
diff --git a/src/test/scala/leon/test/purescala/TreeNormalizationsTests.scala b/src/test/scala/leon/test/purescala/TreeNormalizationsTests.scala
index a414e536ab3c1c82d8c30d1b512fef83dc56dff2..d655761f25a3c3c39404a913e22e52d77f081d01 100644
--- a/src/test/scala/leon/test/purescala/TreeNormalizationsTests.scala
+++ b/src/test/scala/leon/test/purescala/TreeNormalizationsTests.scala
@@ -1,7 +1,9 @@
 /* Copyright 2009-2014 EPFL, Lausanne */
 
-package leon.test
-package purescala
+package leon.test.purescala
+
+import leon._
+import leon.test._
 
 import leon.purescala.Common._
 import leon.purescala.Definitions._
diff --git a/src/test/scala/leon/test/purescala/TreeOpsTests.scala b/src/test/scala/leon/test/purescala/TreeOpsTests.scala
index 988c3ffd45e467d65427c50bb5d6f77aa2b4d07f..d028ae8d9b16a5d49b502ad3bf589dcdb3ae6329 100644
--- a/src/test/scala/leon/test/purescala/TreeOpsTests.scala
+++ b/src/test/scala/leon/test/purescala/TreeOpsTests.scala
@@ -1,7 +1,9 @@
 /* Copyright 2009-2014 EPFL, Lausanne */
 
-package leon.test
-package purescala
+package leon.test.purescala
+
+import leon._
+import leon.test._
 
 import leon.LeonContext
 
diff --git a/src/test/scala/leon/test/purescala/TreeTests.scala b/src/test/scala/leon/test/purescala/TreeTests.scala
index 6abdf231ad0b43951daa8d9af894835cd8d28564..aae0705e5135b64ce38fd6b8aaf78209986d3ef6 100644
--- a/src/test/scala/leon/test/purescala/TreeTests.scala
+++ b/src/test/scala/leon/test/purescala/TreeTests.scala
@@ -1,7 +1,9 @@
 /* Copyright 2009-2014 EPFL, Lausanne */
 
-package leon.test
-package purescala
+package leon.test.purescala
+
+import leon._
+import leon.test._
 
 import leon.purescala.Common._
 import leon.purescala.Definitions._
diff --git a/src/test/scala/leon/test/solvers/EnumerationSolverTests.scala b/src/test/scala/leon/test/solvers/EnumerationSolverTests.scala
index ac1f4926dca26196f35d06709b618adc7f887f57..b5bfc4466e3c84fe603315e94b37ac895fe77aa2 100644
--- a/src/test/scala/leon/test/solvers/EnumerationSolverTests.scala
+++ b/src/test/scala/leon/test/solvers/EnumerationSolverTests.scala
@@ -1,9 +1,9 @@
 /* Copyright 2009-2014 EPFL, Lausanne */
 
-package leon.test
-package solvers
+package leon.test.solvers
 
 import leon._
+import leon.test._
 import leon.utils.Interruptible
 import leon.solvers._
 import leon.solvers.combinators._
diff --git a/src/test/scala/leon/test/solvers/TimeoutSolverTests.scala b/src/test/scala/leon/test/solvers/TimeoutSolverTests.scala
index 109895cdce5ab76ef41fc70dfe60ca0ea54ade15..0c4bd2791ed8371542f7b3918260b52914c26794 100644
--- a/src/test/scala/leon/test/solvers/TimeoutSolverTests.scala
+++ b/src/test/scala/leon/test/solvers/TimeoutSolverTests.scala
@@ -1,9 +1,9 @@
 /* Copyright 2009-2014 EPFL, Lausanne */
 
-package leon.test
-package solvers
+package leon.test.solvers
 
 import leon._
+import leon.test._
 import leon.utils.Interruptible
 import leon.solvers._
 import leon.solvers.combinators._
diff --git a/src/test/scala/leon/test/solvers/z3/FairZ3SolverTests.scala b/src/test/scala/leon/test/solvers/z3/FairZ3SolverTests.scala
index 0e520d18260d14d96885c4e445d403c3ead81b8f..7ed2aa9bd46fe71affe48441f6478018584615f4 100644
--- a/src/test/scala/leon/test/solvers/z3/FairZ3SolverTests.scala
+++ b/src/test/scala/leon/test/solvers/z3/FairZ3SolverTests.scala
@@ -1,8 +1,8 @@
 /* Copyright 2009-2014 EPFL, Lausanne */
 
-package leon.test
-package solvers.z3
+package leon.test.solvers.z3
 
+import leon.test._
 import leon.purescala.Common._
 import leon.purescala.Definitions._
 import leon.purescala.Trees._
diff --git a/src/test/scala/leon/test/solvers/z3/FairZ3SolverTestsNewAPI.scala b/src/test/scala/leon/test/solvers/z3/FairZ3SolverTestsNewAPI.scala
index 8ce8d3796422bd41869b5cf42a9d8afeffa0e5e1..7f489e729b20cd549821778fe2534ee434bc79c2 100644
--- a/src/test/scala/leon/test/solvers/z3/FairZ3SolverTestsNewAPI.scala
+++ b/src/test/scala/leon/test/solvers/z3/FairZ3SolverTestsNewAPI.scala
@@ -1,8 +1,8 @@
 /* Copyright 2009-2014 EPFL, Lausanne */
 
-package leon.test
-package solvers.z3
+package leon.test.solvers.z3
 
+import leon.test._
 import leon.purescala.Common._
 import leon.purescala.Definitions._
 import leon.purescala.Trees._
diff --git a/src/test/scala/leon/test/solvers/z3/UninterpretedZ3SolverTests.scala b/src/test/scala/leon/test/solvers/z3/UninterpretedZ3SolverTests.scala
index d4ac0f2e5f036dbb3e14080d1410af458a07d6be..a0579dbd460a4c2589068e0dd5f03aa0c72a6ae4 100644
--- a/src/test/scala/leon/test/solvers/z3/UninterpretedZ3SolverTests.scala
+++ b/src/test/scala/leon/test/solvers/z3/UninterpretedZ3SolverTests.scala
@@ -1,7 +1,8 @@
 /* Copyright 2009-2014 EPFL, Lausanne */
 
-package leon.test
-package solvers.z3
+package leon.test.solvers.z3
+
+import leon.test._
 
 import leon.purescala.Common._
 import leon.purescala.Definitions._
diff --git a/src/test/scala/leon/test/synthesis/AlgebraSuite.scala b/src/test/scala/leon/test/synthesis/AlgebraSuite.scala
index 22b4380a1863840939556f5e53edd5cfa5faa344..bfd30c7b4443dc70603b9e143ee2343c01342464 100644
--- a/src/test/scala/leon/test/synthesis/AlgebraSuite.scala
+++ b/src/test/scala/leon/test/synthesis/AlgebraSuite.scala
@@ -1,7 +1,7 @@
 /* Copyright 2009-2014 EPFL, Lausanne */
 
-package leon.test
-package synthesis
+package leon.test.synthesis
+import leon.test._
 
 import leon.synthesis.Algebra._
 
diff --git a/src/test/scala/leon/test/synthesis/LinearEquationsSuite.scala b/src/test/scala/leon/test/synthesis/LinearEquationsSuite.scala
index 84282bbe85cc5a189a255f6b0cccb269682f71a4..2906f7b2cdbe020c5221b1d8fea3f58d394361f7 100644
--- a/src/test/scala/leon/test/synthesis/LinearEquationsSuite.scala
+++ b/src/test/scala/leon/test/synthesis/LinearEquationsSuite.scala
@@ -1,7 +1,7 @@
 /* Copyright 2009-2014 EPFL, Lausanne */
 
-package leon.test
-package synthesis
+package leon.test.synthesis
+import leon.test._
 
 import leon.purescala.Trees._
 import leon.purescala.TypeTrees._
diff --git a/src/test/scala/leon/test/synthesis/SynthesisRegressionSuite.scala b/src/test/scala/leon/test/synthesis/SynthesisRegressionSuite.scala
index a6794621b422602d2e7c03326f5ed3d6a4aa4a5e..7531e24ccb99e3879139a30b11db8f3983026bcb 100644
--- a/src/test/scala/leon/test/synthesis/SynthesisRegressionSuite.scala
+++ b/src/test/scala/leon/test/synthesis/SynthesisRegressionSuite.scala
@@ -1,8 +1,7 @@
 /* Copyright 2009-2014 EPFL, Lausanne */
 
-package leon
-package test
-package synthesis
+package leon.test.synthesis
+import leon.test._
 
 import leon._
 import leon.purescala.Definitions._
@@ -33,7 +32,7 @@ class SynthesisRegressionSuite extends LeonTestSuite {
 
       val opts = SynthesisOptions(searchBound = Some(bound), allSeeing = true)
 
-      val pipeline = frontends.scalac.ExtractionPhase andThen leon.utils.PreprocessingPhase
+      val pipeline = leon.frontends.scalac.ExtractionPhase andThen leon.utils.PreprocessingPhase
 
       val program = pipeline.run(ctx)(f.getAbsolutePath :: Nil)
 
diff --git a/src/test/scala/leon/test/synthesis/SynthesisSuite.scala b/src/test/scala/leon/test/synthesis/SynthesisSuite.scala
index ea7a93310f7757c5d0b672e326980a8f0a9874e6..cbcc3f2305e5f624174d9c7edce6c997d12d417f 100644
--- a/src/test/scala/leon/test/synthesis/SynthesisSuite.scala
+++ b/src/test/scala/leon/test/synthesis/SynthesisSuite.scala
@@ -1,8 +1,7 @@
 /* Copyright 2009-2014 EPFL, Lausanne */
 
-package leon.test
-package synthesis
-
+package leon.test.synthesis
+import leon.test._
 import leon._
 import leon.purescala.Definitions._
 import leon.purescala.Trees._
diff --git a/src/test/scala/leon/test/termination/TerminationRegression.scala b/src/test/scala/leon/test/termination/TerminationRegression.scala
index 208917ec6c873f080e915b6d7dd61e8137c561fd..da5436d0375a43a22a259b0c46069d0b260722a6 100644
--- a/src/test/scala/leon/test/termination/TerminationRegression.scala
+++ b/src/test/scala/leon/test/termination/TerminationRegression.scala
@@ -1,8 +1,9 @@
 /* Copyright 2009-2014 EPFL, Lausanne */
 
-package leon
-package test
-package termination
+package leon.test.termination
+
+import leon._
+import leon.test._
 
 import leon.termination._
 
diff --git a/src/test/scala/leon/test/verification/LibraryVerificationRegression.scala b/src/test/scala/leon/test/verification/LibraryVerificationRegression.scala
index a1d7c26906d0429fc28c9dba8d4d23f431889a55..faf107ebb18d05480c93dcccbc21c35c37ef515c 100644
--- a/src/test/scala/leon/test/verification/LibraryVerificationRegression.scala
+++ b/src/test/scala/leon/test/verification/LibraryVerificationRegression.scala
@@ -1,8 +1,10 @@
 /* Copyright 2009-2014 EPFL, Lausanne */
 
-package leon
-package test
-package verification
+package leon.test.verification
+
+import leon._
+import leon.test._
+
 
 import java.io.File
 
diff --git a/src/test/scala/leon/test/verification/PureScalaVerificationRegression.scala b/src/test/scala/leon/test/verification/PureScalaVerificationRegression.scala
index c553003064c0926460bdb92f1e8d0ebf14ce36a2..86b394053f4945ad86872fbbb70bbd231aa9885a 100644
--- a/src/test/scala/leon/test/verification/PureScalaVerificationRegression.scala
+++ b/src/test/scala/leon/test/verification/PureScalaVerificationRegression.scala
@@ -1,8 +1,9 @@
 /* Copyright 2009-2014 EPFL, Lausanne */
 
-package leon
-package test
-package verification
+package leon.test.verification
+
+import leon._
+import leon.test._
 
 import leon.verification.{AnalysisPhase,VerificationReport}
 
diff --git a/src/test/scala/leon/test/verification/XLangVerificationRegression.scala b/src/test/scala/leon/test/verification/XLangVerificationRegression.scala
index 726b039e0c977b8e31a82d69f5b9b0912eedadc6..680948c287021165fea09f9e9bc1915872d5a724 100644
--- a/src/test/scala/leon/test/verification/XLangVerificationRegression.scala
+++ b/src/test/scala/leon/test/verification/XLangVerificationRegression.scala
@@ -1,8 +1,9 @@
 /* Copyright 2009-2014 EPFL, Lausanne */
 
-package leon
-package test
-package verification
+package leon.test.verification
+
+import leon._
+import leon.test._
 
 import leon.verification.VerificationReport
 import leon.xlang.XlangAnalysisPhase