Как получить вывод покрытия кода для отображения с помощью экспрессо? - PullRequest
3 голосов
/ 11 января 2012

Я работаю над тем, чтобы настроить Expresso и запустить несколько тестов. Я следовал вместе с учебником по узлам tuts , и у меня есть 4 теста, которые выполняются и проходят. Теперь я пытаюсь получить вывод покрытия кода при запуске тестов, например, шоу docs . Тем не менее, я как бы потерялся.

Мои тесты с примерами базового обучения находятся в файле test.js в папке с именем test:

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

Аналогично, если я запускаю expresso с флагом -c или множеством других опций, я получаю тот же вывод. Я хотел бы получить вывод покрытия кода, показанный в документах. Я также выполнил команду $ node-jscoverage lib lib-cov, и в папке lib-cov теперь есть что-то ..

Чего мне не хватает?

1 Ответ

0 голосов
/ 17 января 2012

Лучший результат, который я нашел на данный момент, это редактирование путей при тестовом прогоне:

Это 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
...