【问题标题】:Coverage report with istanbul and mocha伊斯坦布尔和摩卡咖啡的报道
【发布时间】:2016-04-29 13:48:08
【问题描述】:

我是 Node.js 的新手。我必须在我的应用程序中设置一些测试,我非常生气地尝试在我的loopback 应用程序中使用mochaistanbul 生成后端代码覆盖率报告。

在 Github 上搜索数以千计的 dab 解释文章,我发现了一些不错的 articles,然后我发现我必须使用这样的东西:

istanbul cover _mocha -- [path/to/test/files] -R spec

我很高兴,因为它说:“您实际上所做的就是将运行测试的命令传递给伊斯坦布尔,然后它会代表您运行这些测试。”但是,每次我尝试运行伊斯坦布尔时,都会收到此错误:

No coverage information was collected, exit without writing coverage information
C:\...\proj-name\node_modules\.bin\_mocha:2
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
          ^^^^^^^

SyntaxError: missing ) after argument list

我的工作测试文件是:

var userService = require('../TestBusinessLogic.js');
var should = require('chai').should();

describe('API Utenti', function() {
  it('should throw Exception on missing UserName', function() {
    (function() {
      userService({ Name: 'Pippo', Surname: 'Baudo' });
    }).should.Throw(Error);
  });
});

这个命令好用吗?如果没有,有人可以解释一下如何使用istanbulmocha 制作覆盖率报告吗?

【问题讨论】:

    标签: node.js unit-testing mocha.js code-coverage loopbackjs


    【解决方案1】:

    认为我运行的是 node_modules\.bin\_mocha 而不是 node_modules\mocha\bin\_mocha,这解决了我的问题。

    【讨论】:

    • 这个解决方案对我不起作用 - 它抱怨:Unable to resolve file [./node_modules/bin/_mocha] 这是我的 package.json 脚本配置:"scripts": { "test": "node_modules/.bin/mocha test", "coverage":"./node_modules/.bin/istanbul cover ./node_modules/bin/_mocha -- test -R spec" }
    【解决方案2】:

    从命令行运行istanbul 时,您需要从项目目录的根目录运行它,默认情况下,它会在您的目录根目录中查找要运行覆盖率报告的文件。

    另外确保你的测试文件夹的路径是相对于你的项目目录的。

    所以你应该使用cd导航到你的项目目录,然后在你的项目目录中运行

    istanbul cover _mocha -- ./path-to/test.js -R spec

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-16
      • 2016-02-10
      • 1970-01-01
      • 2014-02-11
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 2013-12-21
      相关资源
      最近更新 更多