Как получить имя файла теста в mocha reporter

Есть ли способ получить имя файла текущего теста в mocha reporter?

В базе и примерах ничего не нашел.


person laggingreflex    schedule 03.06.2014    source источник
comment
Это просто runner.on('fail', test => test.filename) (пришел к этому спустя долгое время, и ответ не сразу был очевиден)   -  person laggingreflex    schedule 18.12.2015


Ответы (1)


На самом деле, имя файла передается Suite в поле file в mocha, начиная с этого запрос на извлечение. Просто в настоящее время mocha чаще всего запускается как плагин karma (а именно, karma-mocha plugin ), и, говоря о декабре 14 года, этот плагин просто не передает дальше информацию об имени файла.

Чтобы сделать этот ответ самосогласованным, вот как Suite формируется в mocha (это реализация tdd, но она аналогична для bdd):

context.suite = function(title, fn){
      var suite = Suite.create(suites[0], title);
      suite.file = file;
      suites.unshift(suite);
      fn.call(suite);
      suites.shift();
      return suite;
    };

А вот как формируются масти в karma-mocha/lib/adapter.js:

 runner.on('test end', function(test) {
      var skipped = test.pending === true;

      var result = { 
        id: '', 
        description: test.title,
        suite: [], 
        success: test.state === 'passed',
        skipped: skipped,
        time: skipped ? 0 : test.duration,
        log: test.$errors || []
      };  

      var pointer = test.parent;
      while (!pointer.root) {
        result.suite.unshift(pointer.title);
        pointer = pointer.parent;
      }   

      tc.result(result);
    });

Но знаете что, я думаю, это хорошая вещь, чтобы выпустить запрос функции в проекте karma-mocha.

person shabunc    schedule 21.12.2014