diff --git a/buildSrc/src/main/java/org/jastadd/relast/plugin/RelastTest.java b/buildSrc/src/main/java/org/jastadd/relast/plugin/RelastTest.java
index 2193eab52b6ede597fd6458cefd7dec592e5737f..dbda5a403e9c653a3836ead48da7a973bc0ba694 100644
--- a/buildSrc/src/main/java/org/jastadd/relast/plugin/RelastTest.java
+++ b/buildSrc/src/main/java/org/jastadd/relast/plugin/RelastTest.java
@@ -13,6 +13,7 @@ import java.nio.file.*;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * RelAst Test Task
@@ -165,6 +166,10 @@ public class RelastTest extends DefaultTask {
 
   private final String[] genSuffixes = {".ast", ".jadd", "RefResolver.jadd", "ResolverStubs.jrag", "Serializer.jadd"};
 
+  private Path pathToAbsoluteProject(String filename) {
+    return Paths.get(getProject().getProjectDir().getAbsolutePath(), filename);
+  }
+
   @TaskAction
   void runTest() throws IOException {
     setGroup("verification");
@@ -179,7 +184,7 @@ public class RelastTest extends DefaultTask {
     // first, delete generated files
     List<Path> genFiles = new ArrayList<>();
     for (String suffix : genSuffixes) {
-      genFiles.add(Paths.get(absoluteProjectPath, getGrammarName() + suffix));
+      genFiles.add(pathToAbsoluteProject(getGrammarName() + suffix));
     }
     if (isVerbose()) {
       System.out.println("gen files: " + genFiles);
@@ -191,8 +196,8 @@ public class RelastTest extends DefaultTask {
       }
     });
     // create output directories, if not existing
-    createDirectory(Paths.get(getOutputDir()));
-    createDirectory(Paths.get(getGrammarName()).getParent());
+    createDirectory(pathToAbsoluteProject(getOutputDir()));
+    createDirectory(pathToAbsoluteProject(getGrammarName()).getParent());
     if (isVerbose()) {
       System.out.println("Pre processing, running relast");
     }
@@ -209,7 +214,7 @@ public class RelastTest extends DefaultTask {
         } else {
           javaExecSpec.setMain("org.jastadd.relast.compiler.Compiler");
         }
-        args.addAll(getRelastFiles());
+        args.addAll(getRelastFiles().stream().map(this::pathToAbsoluteProject).collect(Collectors.toList()));
         args.add("--quiet");
         if (isWriteToFile()) {
           args.add("--file");
@@ -229,7 +234,7 @@ public class RelastTest extends DefaultTask {
         if (isSet(getSerializer())) {
           args.add("--serializer=" + getSerializer());
         }
-        args.add("--grammarName=" + getGrammarName());
+        args.add("--grammarName=" + pathToAbsoluteProject(getGrammarName()));
         if (isVerbose()) {
           System.out.println("Start relast with args: " + args);
         }
@@ -250,13 +255,13 @@ public class RelastTest extends DefaultTask {
           javaExecSpec.setClasspath(runtimeClasspath);
           javaExecSpec.setMain("org.jastadd.JastAdd");
           List<Object> args = new ArrayList<>();
-          args.add("--o=" + getOutputDir());
+          args.add("--o=" + pathToAbsoluteProject(getOutputDir()));
           args.add("--package=" + getPackageName());
           if (isSet(getJastAddList())) {
             args.add("--List=" + getJastAddList());
           }
           args.addAll(genFiles);
-          args.addAll(getMoreInputFiles());
+          args.addAll(getMoreInputFiles().stream().map(this::pathToAbsoluteProject).collect(Collectors.toList()));
           if (isVerbose()) {
             System.out.println("Start JastAdd with args: " + args);
           }
diff --git a/ros2rag.tests/build.gradle b/ros2rag.tests/build.gradle
index 5ed86502d99e106b73381a7ab1d67bc5725544c7..f8225fc931fe5dba242d61c53d93fc83a5daa28b 100644
--- a/ros2rag.tests/build.gradle
+++ b/ros2rag.tests/build.gradle
@@ -87,6 +87,7 @@ task preprocessExampleTest(type: JavaExec, group: 'verification') {
 //}
 
 task compileExampleTest(type: RelastTest) {
+    verbose = true
     useJastAddNames = true
     relastFiles 'src/test/02-after-ros2rag/example/Grammar.relast'
     grammarName = 'src/test/03-after-relast/example/example'