使用Mocha生成节点应用程序testing和LCOV报告

我的团队最近开始研究一个完全由ES6编写的先前存在的Node应用程序(在我们开始工作之前,它已经通过了几个不同的开发者)。 该应用程序使用摩卡和Nyan作为摩卡记者进行了最低程度的unit testing。 package.json文件已经包含以下命令来运行testing:

"test": "node ./node_modules/mocha/bin/mocha --compilers js:babel-core/register ./test/**/*.spec.js" 

作为我们部署周期的一部分,我们使用Travis和Codacy的CI / CDpipe道。 因此,为了启用Codacy的“代码覆盖”部分,我需要对应用程序库和package.json文件进行一些更改。 基本的想法是让摩卡生成一个.lcov文件,然后通过Travis构build脚本传送到Codacy。

做了一些研究后,我把以下内容成功地生成了lcov文件:

  "build-test": "node ./node_modules/mocha/bin/mocha -R mocha-lcov-reporter > coverage/coverage.lcov --compilers js:babel-core/register ./test/**/*.spec.js --reporter nyan" 

问题是,我得到了.lcov文件的Codacyparsing错误。 我查看了其他项目的lcov文件,似乎还有额外的数据在我生成的。 这里的参考是生成的lcov文件:

 0 0 0 [4A[5C- [5C- [5C- [5C- [4A[6C_,------, [6C_| /\_/\ [6C^|__( - .-) [6C "" "" [4ACONSTRUCTOR 1 0 0 [4A[5C-_ [5C-_ [5C-_ [5C-_ [4A[7C_,------, [7C_| /\_/\ [7C~|_( ^ .^) [7C "" "" [4ACONSTRUCTOR 2 0 0 [4A[5C-_- [5C-_- [5C-_- [5C-_- [4A[8C_,------, [8C_| /\_/\ [8C^|__( ^ .^) [8C "" "" [4ACONSTRUCTOR 3 0 0 [4A[5C-_-_ [5C-_-_ [5C-_-_ [5C-_-_ [4A[9C_,------, [9C_| /\_/\ [9C~|_( ^ .^) [9C "" "" [4ACONSTRUCTOR {"name":"from http://localhost:9200 searcher","hostname":"NCI-01966295-ML","pid":14596,"level":30,"msg":"Active","time":"2017-05-16T23:02:37.746Z","v":0} {"name":"from http://localhost:9200 searcher","hostname":"NCI-01966295-ML","pid":14596,"level":30,"msg":"Temporarily Closed to Accrual","time":"2017-05-16T23:02:37.747Z","v":0} 4 0 0 [4A[5C-_-_- [5C-_-_- [5C-_-_- [5C-_-_- [4A[10C_,------, [10C_| /\_/\ [10C^|__( ^ .^) [10C "" "" [4ACONSTRUCTOR 5 0 0 [4A[5C-_-_-_ [5C-_-_-_ [5C-_-_-_ [5C-_-_-_ [4A[11C_,------, [11C_| /\_/\ [11C~|_( ^ .^) [11C "" "" [4ACONSTRUCTOR 6 0 0 [4A[5C-_-_-_- [5C-_-_-_- [5C-_-_-_- [5C-_-_-_- [4A[12C_,------, [12C_| /\_/\ [12C^|__( ^ .^) [12C "" "" [4ACONSTRUCTOR 7 0 0 [4A[5C-_-_-_-_ [5C-_-_-_-_ [5C-_-_-_-_ [5C-_-_-_-_ [4A[13C_,------, [13C_| /\_/\ [13C~|_( ^ .^) [13C "" "" [4ACONSTRUCTOR 8 0 0 [4A[5C-_-_-_-_- [5C-_-_-_-_- [5C-_-_-_-_- [5C-_-_-_-_- [4A[14C_,------, [14C_| /\_/\ [14C^|__( ^ .^) [14C "" "" [4ACONSTRUCTOR 9 0 0 [4A[5C-_-_-_-_-_ [5C-_-_-_-_-_ [5C-_-_-_-_-_ [5C-_-_-_-_-_ [4A[15C_,------, [15C_| /\_/\ [15C~|_( ^ .^) [15C "" "" [4A 9 passing (20ms) 

我观察了一些关于npm脚本的东西(testing和构buildtesting):

  • testing正常工作,通知我9个testing通过
  • 如果我运行没有“–reporter nyan”的构buildtesting,它会显示“没有发现覆盖数据,请确保您的代码已正确安装”
  • 构buildtesting代码行中的所有内容似乎都是必需的。

说实话,我的目的是为了我的智慧。 我不知道为什么.lcov文件有parsing问题。 我真正需要的是使用mocha-lcov-reporter的摩卡生成一个有效的.lcov文件。 似乎不应该那么困难。

感谢您提供的任何帮助。 我很感激。