function benchmark(description, fn) {

    it(description, function (cb) {
      var self = this;

      var t1 = process.hrtime();

      fn.apply(self, [
        function _callbackFromFn(err) {
          var _result = {};

          // If a `comment` or `expected` was provided, harvest it
          _result.expected = self.expected;
          self.expected = null;

          _result.comment = self.comment;
          self.comment = null;

          var diff = process.hrtime(t1);

          _.result.duration = (diff[0] * 1e6) + (diff[1] / 1e3);
          _result.benchmark = description;

          // console.log('finished ',_result);
          self.benchmarks.push(_result);

          if (err) {
            return cb(err);
          }

          return cb.apply(Array.prototype.slice.call(arguments));
       }
      ]);
    });//</it>
  }
Run the specified function, capturing time elapsed.

@param  {[type]}   description [description]
@param  {Function} fn          [description]
@param  {Function} afterwards