diff --git a/Dockerfile b/Dockerfile
index 6f35e64c9bfc64b92edce05e567608bb1014f9f5..0bae30ef30f525839a469b77dfa3a578db9afcca 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,10 +1,10 @@
 from openjdk:11-jdk-slim
 
 env MODOCOT_BASEDIR /modocot
-env MODOCOT_TESTDIR /$MODOCOT_BASEDIR/test
-env MODOCOT_SOURCEDIR /$MODOCOT_BASEDIR/src
-env MODOCOT_RESULTDIR /$MODOCOT_BASEDIR/result
-env MODOCOT_LIBSDIR /$MODOCOT_BASEDIR/libs
+env MODOCOT_TESTDIR $MODOCOT_BASEDIR/test
+env MODOCOT_SOURCEDIR $MODOCOT_BASEDIR/src
+env MODOCOT_RESULTDIR $MODOCOT_BASEDIR/result
+env MODOCOT_LIBSDIR $MODOCOT_BASEDIR/libs
 
 run mkdir -p $MODOCOT_TESTDIR \
     && mkdir $MODOCOT_SOURCEDIR \
@@ -14,7 +14,9 @@ run mkdir -p $MODOCOT_TESTDIR \
 add target/modocot-openjdk11-junit5-runner-jar-with-dependencies.jar /$MODOCOT_BASEDIR/app.jar
 add https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-api/5.7.0/junit-jupiter-api-5.7.0.jar /$MODOCOT_LIBSDIR/
 add https://repo1.maven.org/maven2/org/junit/jupiter/junit-jupiter-engine/5.7.0/junit-jupiter-engine-5.7.0.jar /$MODOCOT_LIBSDIR/
+add https://repo1.maven.org/maven2/org/apiguardian/apiguardian-api/1.1.1/apiguardian-api-1.1.1.jar /$MODOCOT_LIBSDIR/
+add https://repo1.maven.org/maven2/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar /$MODOCOT_LIBSDIR/
 
 workdir /modocot
 
-entrypoint java -Djava.security.egd=file:/dev/./urandom -jar /modocot/app.jar "$MODOCOT_SOURCEDIR:$MODOCOT_TESTDIR" "$MODOCOT_LIBSDIR/*" $MODOCOT_RESULTDIR
+entrypoint java -Djava.security.egd=file:/dev/./urandom -jar /modocot/app.jar "$MODOCOT_SOURCEDIR/src:$MODOCOT_TESTDIR/test" "$MODOCOT_LIBSDIR/*:$MODOCOT_TESTDIR/libs/*" $MODOCOT_RESULTDIR
diff --git a/src/main/java/de/hftstuttgart/modocot/Testrunner.java b/src/main/java/de/hftstuttgart/modocot/Testrunner.java
index f75213c141a9cd0fcfea58f89a2fd5a1d8702e1e..c0d61b36ce2d1e472e63cf6252b4a209b126c9c2 100644
--- a/src/main/java/de/hftstuttgart/modocot/Testrunner.java
+++ b/src/main/java/de/hftstuttgart/modocot/Testrunner.java
@@ -72,7 +72,6 @@ public class Testrunner
         libraryFolders = args[1].split(":");
         resultFolder = args[2];
         classFolder = Files.createTempDirectory("modocot-testrunner").toAbsolutePath().toString();
-        classPathItems = buildClassPathItems();
 
         // finding all source files
         Set<File> sourceFiles = new HashSet<>();
@@ -94,10 +93,14 @@ public class Testrunner
         writeResult(resultSummary);
     }
 
-    public static String[] buildClassPathItems()
+    public static String[] buildClassPathItems(boolean runtime)
     {
         Set<String> classPathItemsBuild = new HashSet<>(Arrays.asList(libraryFolders));
         classPathItemsBuild.add(classFolder);
+        if (runtime)
+        {
+            classPathItemsBuild.addAll(Arrays.stream(sourceFolders).collect(Collectors.toSet()));
+        }
         return classPathItemsBuild.toArray(new String[0]);
     }
 
@@ -111,6 +114,11 @@ public class Testrunner
             {
                 path = path.substring(0, path.length() - 1);
                 File pathFile = new File(path);
+                if (!pathFile.exists() || !pathFile.isDirectory())
+                {
+                    continue;
+                }
+
                 for (File file : Objects.requireNonNull(pathFile.listFiles()))
                 {
                     if (file.isFile() && file.getName().endsWith(".jar"))
@@ -123,7 +131,11 @@ public class Testrunner
                 }
             } else
             {
-                files.add(new File(path));
+                File file = new File(path);
+                if (file.exists())
+                {
+                    files.add(file);
+                }
             }
         }
         return files;
@@ -131,6 +143,7 @@ public class Testrunner
 
     public static List<Diagnostic> compile(Set<File> files, File outputDir)
     {
+        classPathItems = buildClassPathItems(false);
         LOG.info("compilation started");
         List<Diagnostic> compilationErrors = new LinkedList<>();
 
@@ -302,6 +315,7 @@ public class Testrunner
 
     public static ModocotResultSummary runTests() throws MalformedURLException
     {
+        classPathItems = buildClassPathItems(true);
         LOG.info("saving original class loader");
         ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader();
         // get custom one