4

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

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

4

1 回答 1

4

实际上,从这个拉取请求开始,文件名在 mocha 的文件字段中传递给套件。只是现在 mocha 最常见的是作为 karma 插件(即karma-mocha插件)运行,而且,说到 14 年 12 月,这个插件只是不会进一步传递文件名信息。

为了使这个答案自洽,这是在 mocha 中形成 Suite 的方式(它是 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 项目中作为功能请求发布的一件好事。

于 2014-12-21T20:29:37.823 回答