docs: function invoke(itfn, title, fn) {
      return itfn.call(this, title, function(done) {
        var test = this.test;
        var failure = null;
  
        try {
          var promise = fn.call(this);
          if (promise && (typeof(promise.then) === 'function')) {
            promise.then(function(success) {
              if (failure != null) done(failure);
              else if (success === successInstance) done();
              else done(new Error("Not notified of completion: call 'done()' on the last promise"));
            }, function(failure) {
              if (failure instanceof SkipTest) {
                if (failure.message) console.warn("Skipped: " + failure.message);
                test.pending = true;
                done();
              } else {
                done(failure);
              }
            })
          } else if (promise === successPromise) {
            done(new Error("The completion notification 'done()' must be called as a function"));
          } else {
            done(new Error("Test did not return a Promise"));
          }
        } catch (error) {
          if (error instanceof SkipTest) {
            if (error.message) console.warn("Skipped: " + error.message);
            test.pending = true;
            done();
          } else {
            done(failure = error);
          }
        }
      });
    }