diff --git a/solve/gradle-parts/base.gradle b/solve/gradle-parts/base.gradle
index 6851c021aa2a0b5aba2b438f97d5e18eebb290a5..eacb43e275cc07e081adc2a416852f1c426a6254 100644
--- a/solve/gradle-parts/base.gradle
+++ b/solve/gradle-parts/base.gradle
@@ -26,7 +26,7 @@ dependencies {
     testImplementation group: 'junit', name: 'junit', version: junitVersion
     testImplementation group: 'org.hamcrest', name: 'hamcrest-junit', version: '1.0.0.0'
     testImplementation 'com.opencsv:opencsv:3.8'
-    testImplementation 'com.github.stefanbirkner:system-rules:1.19.0'
+    testImplementation 'com.github.stefanbirkner:system-lambda:1.2.0'
 }
 
 mainClassName = 'de.tudresden.inf.st.ttc18live.LiveContestDriverXml'
diff --git a/solve/src/test/java/de/tudresden/inf/st/ttc18live/test/AbstractAllTest.java b/solve/src/test/java/de/tudresden/inf/st/ttc18live/test/AbstractAllTest.java
index b145a7df0138fbe8866e9d4f6a6212aad530a404..931b3b82271d1fb2e8969a780c767cf451d408f2 100644
--- a/solve/src/test/java/de/tudresden/inf/st/ttc18live/test/AbstractAllTest.java
+++ b/solve/src/test/java/de/tudresden/inf/st/ttc18live/test/AbstractAllTest.java
@@ -1,11 +1,13 @@
 package de.tudresden.inf.st.ttc18live.test;
 
+import com.github.stefanbirkner.systemlambda.Statement;
+import com.github.stefanbirkner.systemlambda.SystemLambda;
 import com.opencsv.CSVReader;
 import de.tudresden.inf.st.ttc18live.AbstractLiveContestDriver;
 import de.tudresden.inf.st.ttc18live.LiveContestDriverXml;
 import org.junit.*;
-import org.junit.contrib.java.lang.system.EnvironmentVariables;
-import org.junit.contrib.java.lang.system.SystemOutRule;
+//import org.junit.contrib.java.lang.system.EnvironmentVariables;
+//import org.junit.contrib.java.lang.system.SystemOutRule;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 
@@ -23,9 +25,9 @@ import java.util.*;
  */
 @RunWith(Parameterized.class)
 public abstract class AbstractAllTest {
-  @Rule
-  public final EnvironmentVariables environmentVariables = new EnvironmentVariables();
-  @Rule public final SystemOutRule systemOutRule = new SystemOutRule().enableLog();
+//  @Rule
+//  public final EnvironmentVariables environmentVariables = new EnvironmentVariables();
+//  @Rule public final SystemOutRule systemOutRule = new SystemOutRule().enableLog();
 
   private final static int maxSequence = 5;
   private final static Path modelsPath = Paths.get("src", "test", "resources", "models");
@@ -74,11 +76,12 @@ public abstract class AbstractAllTest {
     }
   }
 
-  private void setVars() {
-    environmentVariables.set("ChangeSet", Integer.toString(size));
-    environmentVariables.set("ChangePath", modelsPath.resolve(Integer.toString(size)).toFile().getAbsolutePath());
-    environmentVariables.set("Sequences", Integer.toString(maxSequence));
-    environmentVariables.set("Query", "Q" + query);
+  private void withVars(Statement statement) throws Exception {
+    SystemLambda.withEnvironmentVariable("ChangeSet", Integer.toString(size))
+        .and("ChangePath", modelsPath.resolve(Integer.toString(size)).toFile().getAbsolutePath())
+        .and("Sequences", Integer.toString(maxSequence))
+        .and("Query", "Q" + query)
+        .execute(statement);
   }
 
   private AbstractLiveContestDriver driver;
@@ -87,23 +90,19 @@ public abstract class AbstractAllTest {
     this.query = query;
     this.size = size;
     this.localExpected = expected.get(query).get(size);
-    setVars();
-  }
-
-  @Before
-  public void setupDriver() {
-    driver = createDriver();
   }
 
   abstract AbstractLiveContestDriver createDriver();
 
   @Test
-  public void test() {
+  public void test() throws Exception {
     System.out.println(query + "," + size + ":" + expected.get(query).get(size));
-    systemOutRule.clearLog();
-    driver.mainImpl();
+    String systemOut = SystemLambda.tapSystemOut(() -> withVars(() -> {
+      driver = createDriver();
+      driver.mainImpl();
+    }));
     Map<Integer, String> actual = new HashMap<>();
-    for (String line : systemOutRule.getLog().split("\n")) {
+    for (String line : systemOut.split("\n")) {
       String[] tokens = line.split(";");
       if ("Elements".equals(tokens[6])) {
         int iteration = Integer.parseInt(tokens[4]);
diff --git a/solve/src/test/java/de/tudresden/inf/st/ttc18live/test/AllEmfTest.java b/solve/src/test/java/de/tudresden/inf/st/ttc18live/test/AllEmfTest.java
index 9859238d9b140f205bac45a115971ff4d65e6a88..e57dda5758894c4351121c2bba0000f825e119ae 100644
--- a/solve/src/test/java/de/tudresden/inf/st/ttc18live/test/AllEmfTest.java
+++ b/solve/src/test/java/de/tudresden/inf/st/ttc18live/test/AllEmfTest.java
@@ -16,11 +16,6 @@ public class AllEmfTest extends AbstractAllTest {
 
   @Override
   AbstractLiveContestDriver createDriver() {
-    return new LiveContestDriverEMF() {
-//      @Override
-//      public void Initial() {
-//        // do nothing (i.e. do not throw an Exception)
-//      }
-    };
+    return new LiveContestDriverEMF();
   }
 }
diff --git a/solve/src/test/java/de/tudresden/inf/st/ttc18live/test/AllXmlTest.java b/solve/src/test/java/de/tudresden/inf/st/ttc18live/test/AllXmlTest.java
index 8ae095e24e20619c29734ec07a2df98229d2fd15..c3bb53cbbdd1b6e7000016382dbc5c2c264af165 100644
--- a/solve/src/test/java/de/tudresden/inf/st/ttc18live/test/AllXmlTest.java
+++ b/solve/src/test/java/de/tudresden/inf/st/ttc18live/test/AllXmlTest.java
@@ -1,23 +1,7 @@
 package de.tudresden.inf.st.ttc18live.test;
 
-import com.opencsv.CSVReader;
 import de.tudresden.inf.st.ttc18live.AbstractLiveContestDriver;
 import de.tudresden.inf.st.ttc18live.LiveContestDriverXml;
-import org.junit.*;
-import org.junit.contrib.java.lang.system.EnvironmentVariables;
-import org.junit.contrib.java.lang.system.SystemOutRule;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
 
 /**
  * Test against given expected query results using XML solution.