docs: function() {
        if (dest) {
          // Restore console.log to original and write the output
          console.log = consoleLog;
  
          if (!grunt.file.exists(dest)) {
              // Write only if our reporter ignored our `output` option
              grunt.file.write(dest, output.join('\n'));
          }
        }
        var stats = helpers.reduceStats(testStats);
  
        if (stats.failures === 0) {
          var okMsg = stats.tests + ' passed!' + ' (' + stats.duration + 's)';
  
          if (options.growlOnSuccess) {
            growl(okMsg, {
              image: asset('growl/ok.png'),
              title: okMsg,
              priority: 3
            });
          }
  
          grunt.log.ok(okMsg);
  
          // Async test pass
          done(true);
  
        } else {
          var failMsg = stats.failures + '/' + stats.tests + ' tests failed (' +
            stats.duration + 's)';
  
          // Show Growl notice, if avail
          growl(failMsg, {
            image: asset('growl/error.png'),
            title: failMsg,
            priority: 3
          });
  
          // Bail tests if bail option is true
          if (options.bail) {
            grunt.warn(failMsg);
          } else {
            grunt.log.error(failMsg);
          }
  
          // Async test fail
          done(false);
        }
      }