diff --git a/test/dexie-unittest-utils.js b/test/dexie-unittest-utils.js
index <HASH>..<HASH> 100644
--- a/test/dexie-unittest-utils.js
+++ b/test/dexie-unittest-utils.js
@@ -1,4 +1,6 @@
 ﻿import Dexie from 'dexie';
+import {ok, start, asyncTest} from 'QUnit';
+
 
 var no_optimize = window.no_optimize || window.location.search.indexOf('dontoptimize=true') != -1;
 
@@ -99,3 +101,20 @@ export function supports (features) {
     if (/multiEntry/.test(features))
         return hasPolyfillIE || (!isIE && !isEdge);
 }
+
+export function spawnedTest (name, num, promiseGenerator) {
+    if (!promiseGenerator) {
+        promiseGenerator = num;
+        asyncTest(name, function(){
+            Dexie.spawn(promiseGenerator)
+                .catch(e => ok(false, e.stack || e))
+                .finally(start);
+        });
+    } else {
+        asyncTest(name, num, function(){
+            Dexie.spawn(promiseGenerator)
+                .catch(e => ok(false, e.stack || e))
+                .finally(start);
+        });
+    }
+}
Alternative to asyncTest: spawnedTest!

Usage:

spawnedTest("name", function*() {
   // Use yield as await.
   // Dont have to catch errors
   // Dont have to call start() when done.
});