diff --git a/tests/PHPUnit/UI b/tests/PHPUnit/UI
index a58fcba24ef69c6a5c48bcfcb2fd5afd2c7d3c78..e9593ef8b7bb9c91a86b31fb2a08f917837fe57d 160000
--- a/tests/PHPUnit/UI
+++ b/tests/PHPUnit/UI
@@ -1 +1 @@
-Subproject commit a58fcba24ef69c6a5c48bcfcb2fd5afd2c7d3c78
+Subproject commit e9593ef8b7bb9c91a86b31fb2a08f917837fe57d
diff --git a/tests/lib/screenshot-testing/support/app.js b/tests/lib/screenshot-testing/support/app.js
index 8a67e68ed6f5a837f3e6195d34a2005b580da750..2f234a7bbfc27aef9bbdab5fd784608b6ee0d181 100644
--- a/tests/lib/screenshot-testing/support/app.js
+++ b/tests/lib/screenshot-testing/support/app.js
@@ -115,11 +115,6 @@ Application.prototype.loadTestModules = function () {
         suite._beforeAll.unshift(suite._beforeAll.pop());
 
         suite.afterAll(function (done) {
-            if (!fixture) {
-                done();
-                return;
-            }
-
             testEnvironment.teardownFixture(fixture, done);
         });
     });
diff --git a/tests/lib/screenshot-testing/support/test-environment.js b/tests/lib/screenshot-testing/support/test-environment.js
index ff98cf9d6eab81bd55f509d1d4d3b6d007c3d4ea..4fa6aa4105944ffe178b82368730e5893afcd595 100644
--- a/tests/lib/screenshot-testing/support/test-environment.js
+++ b/tests/lib/screenshot-testing/support/test-environment.js
@@ -15,6 +15,10 @@ var TestingEnvironment = function () {
 };
 
 TestingEnvironment.prototype.reload = function () {
+    for (var key in this) {
+        delete this[key];
+    }
+
     if (fs.exists(testingEnvironmentOverridePath)) {
         var data = JSON.parse(fs.read(testingEnvironmentOverridePath));
         for (var key in data) {
@@ -29,8 +33,6 @@ TestingEnvironment.prototype.save = function () {
         copy[key] = this[key];
     }
 
-    delete copy.backup;
-
     fs.write(testingEnvironmentOverridePath, JSON.stringify(copy));
 };
 
@@ -90,8 +92,6 @@ TestingEnvironment.prototype._call = function (params, done) {
 };
 
 TestingEnvironment.prototype.setupFixture = function (fixtureClass, done) {
-    this.backup = JSON.stringify(this);
-
     console.log("    Setting up fixture " + fixtureClass + "...");
 
     var setupFile = path.join("./support", "setupDatabase.php"),
@@ -125,7 +125,11 @@ TestingEnvironment.prototype.setupFixture = function (fixtureClass, done) {
 };
 
 TestingEnvironment.prototype.teardownFixture = function (fixtureClass, done) {
-    if (options['persist-fixture-data']) {
+    if (options['persist-fixture-data']
+        || !fixtureClass
+    ) {
+        this.deleteAndSave();
+
         done();
         return;
     }
@@ -146,11 +150,7 @@ TestingEnvironment.prototype.teardownFixture = function (fixtureClass, done) {
 
     var self = this;
     child.on("exit", function (code) {
-        for (var key in self.backup) {
-            self[key] = self.backup[key];
-        }
-
-        self.backup = {};
+        self.deleteAndSave();
 
         if (code) {
             done(new Error("Failed to teardown fixture " + fixtureClass + " (error code = " + code + ")"));
@@ -160,4 +160,9 @@ TestingEnvironment.prototype.teardownFixture = function (fixtureClass, done) {
     });
 };
 
+TestingEnvironment.prototype.deleteAndSave = function () {
+    fs.write(testingEnvironmentOverridePath, "{}");
+    this.reload();
+};
+
 exports.TestingEnvironment = new TestingEnvironment();
\ No newline at end of file