如何在mocha记者中获取测试的文件名

时间:2014-06-03 12:29:35

标签: mocha karma-runner karma-mocha

有没有办法在mocha记者中获取当前测试的文件名?

我在基地和示例中找不到任何东西。

1 个答案:

答案 0 :(得分:2)

实际上,文件名从this拉取请求开始在mocha中的文件字段中传递给Suite。现在摩卡最常见的是作为业力插件运行(即karma-mocha插件),而且,谈到2014年12月,这个插件只是没有进一步传递文件名信息。

为了使这个答案自我一致,下面是套件在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项目中作为一个功能请求发布是件好事。