Как получить отчет из benchmark.js

Я старался benchmark.js хотя он, похоже, выполняет тест и показывает самый быстрый тест, я не понимаю, как получить хороший отчет, я попробовал это:

suite.add('My#test', function() {
    console.log("test")
}).on('complete', function() {
        console.log('Fastest is ' + this.filter('fastest').map('name'));
        console.log('stats: ' + suite.stats) // but stats seems undefined, do i miss anything? how come I couldn't find a guide on showing how to print stats?
}).run({ 'async': true });

статистика кажется неопределенной, я что-то пропустил? почему я не могу найти руководство, показывающее, как печатать статистику? как получить отчет, показывающий, сколько времени потребовалось для выполнения теста для каждого метода, который я тестировал, что было медианой, количеством ошибок и всей этой сводкой вместе? Благодарю.

1 ответ

Решение

Вы должны использовать this

// add listeners 
suite.on('cycle', function(event) {
  console.log(String(event.target));
  console.log(event.target.name);
  console.log(event.target.stats.rme);
  console.log(event.target.stats.sample.length);
  console.log(event.target.count); // The number of times a test was executed.
  console.log(event.target.cycles); // The number of cycles performed while benchmarking.
  console.log(event.target.hz); //The number of executions per second.
})
.on('complete', function() {
    for (var i = 0; i < this.length; i++) {
        console.log(this[i].hz + " ops/sec");
        console.log(this[i].stats.sample.length);
        //console.log(this[i].stats);
    }
  console.log(color('Fastest is ' + this.filter('fastest').map('name'),'green'));
  console.log(color('Slowest is ' + this.filter('slowest').map('name'),'red'));
})
// run async 
.run({ 'async': true });
Другие вопросы по тегам