2016-04-29 81 views
0

我是Node.js的新手。我必须在我的应用程序中设置一些测试,并且我很生气,试图在我的loopback应用程序中使用mochaistanbul生成后端代码覆盖率报告。伊斯坦布尔和摩卡的覆盖率报告

通过DAB的千搜索解释文章在Github上我发现了一些好的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进行覆盖报告?

回答

3

计算过,我是跑node_modules\.bin\_mocha,而不是node_modules\mocha\bin\_mocha,这解决了我的问题。

2

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

此外请确保您的测试文件夹的路径是相对于您的项目目录。

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

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

相关问题