diff --git a/lib/index.js b/lib/index.js
index <HASH>..<HASH> 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -27,7 +27,9 @@ const methodIsValid = function(name) {
 
 // New runWithOptions should take precedence if exists.
 const runGenerator = generator => {
-  if (generator.runWithOptions) {
+  if (generator.queueTasks) {
+    generator.queueTasks();
+  } else if (generator.runWithOptions) {
     generator.runWithOptions();
   } else {
     generator.run();
diff --git a/test/base.js b/test/base.js
index <HASH>..<HASH> 100644
--- a/test/base.js
+++ b/test/base.js
@@ -119,7 +119,7 @@ describe('Base', () => {
         .withOptions({ testOption: false })
         .run()
         .then(runResult => {
-          assert.equal(runResult.generator.options.testOption, false);
+          assert.equal(runResult.env.rootGenerator().options.testOption, false);
         });
     });
Test fix and queueTask fix.