Node.js 如何使用expresso获得要显示的代码覆盖率输出?
我正在努力设置Expresso并运行一些测试。我跟随了一个测试,运行了4个测试,并且通过了测试。现在,我正在尝试在运行测试时显示代码覆盖率输出,如show。然而,我有点迷路了 我的超级基础学习示例测试位于名为test的文件夹中名为test.js的文件中:Node.js 如何使用expresso获得要显示的代码覆盖率输出?,node.js,tdd,code-coverage,expresso,Node.js,Tdd,Code Coverage,Expresso,我正在努力设置Expresso并运行一些测试。我跟随了一个测试,运行了4个测试,并且通过了测试。现在,我正在尝试在运行测试时显示代码覆盖率输出,如show。然而,我有点迷路了 我的超级基础学习示例测试位于名为test的文件夹中名为test.js的文件中: var Account = require('../lib/account'); require('should'); module.exports = { "initial balance should be 0" : funct
var Account = require('../lib/account');
require('should');
module.exports = {
"initial balance should be 0" : function(){
var account = Account.create();
account.should.have.property('balance');
account.balance.should.be.eql(0);
},
"crediting account should increase the balance" : function(){
var account = Account.create();
account.credit(10);
account.balance.should.be.eql(10);
},
"debiting account should decrease the balance" : function(){
var account = Account.create();
account.debit(5);
account.balance.should.be.eql(-5);
},
"transferring from account a to b b should decrease from a and increase b": function(){
var accountA = Account.create();
var accountB = Account.create();
accountA.credit(100);
accountA.transfer(accountB, 25);
accountA.balance.should.be.eql(75);
accountB.balance.should.be.eql(25);
}
}
代码本身在lib/account.js中:
var Account = function(){
this.balance = 0;
}
module.exports.create = function(){
return new Account();
}
Account.prototype.credit = function(amt){
this.balance += amt;
}
Account.prototype.debit = function(amt){
this.balance -= amt;
}
Account.prototype.transfer = function(acct, amt){
this.debit(amt);
acct.credit(amt);
}
Account.prototype.empty = function(acct){
this.debit(this.balance);
}
当我从命令行运行expresso时,我得到:
$ expresso
100% 4 tests
同样,如果使用-c
标志或各种其他选项运行expresso
,则会得到相同的输出。我想获得文档中显示的代码覆盖率输出。我还运行了命令$node jscoverage lib-cov
,lib-cov文件夹中现在有东西了
我遗漏了什么?到目前为止,我发现最好的结果是在测试运行时编辑路径: 这是run_tests.sh
#! /bin/bash
rm -Rf ./app-cov
node_modules/expresso/deps/jscoverage/node-jscoverage app/ app-cov
NODE_PATH=$NODE_PATH:/usr/local/lib/node:/usr/local/lib/node_modules:./mmf_node_modules:./app-cov node_modules/expresso/bin/expresso -c
它不是只有在测试失败时才有不同的输出吗?是的,但是应该有额外的代码覆盖输出,不管测试是否通过。图像示例: