Неправильное покрытие с Стамбул + Жасмин + Requirejs
У меня небольшая проблема с моим отчетом о покрытии. У меня есть функции, протестированные с помощью жасмина, но отчет о покрытии говорит мне, что эти функции не рассматриваются.
Я использую jasminejs с requirejs для тестирования своего кода, который также использует requirejs (с магистралью). Для запуска спецификаций используется grunt-contrib-jasmine, grunt-template-jasmine-istanbul и grunt-template-jasmine-requirejs. Тесты выполняются полностью нормально, и если я помещаю журнал в непокрытую функцию, я вижу, что эти функции вызываются несколько раз.
У меня неправильная настройка или почему прирост увеличения не включен?
Вот моя грубая конфигурация
jasmine: {
coverage: {
src: [
'js/collection/*.js',
'js/model/*.js',
'js/util/*.js',
'js/view/**/*.js'
],
options: {
specs: ['spec/**/*Test.js'],
summary: true,
template: require('grunt-template-jasmine-istanbul'),
templateOptions: {
coverage: 'test/coverage.json',
report: {
type: 'html',
options: {
dir: 'test/coverage'
}
},
thresholds: {
lines: 50,
statements: 75,
branches: 75,
functions: 90
},
template: require('grunt-template-jasmine-requirejs'),
templateOptions: {
requireConfigFile: 'js/configuration.js',
requireConfig: {
waitSeconds: 10
}
}
},
junit: {
path: 'test/junit'
}
}
}
}
Вот образец класса
define([
'jquery',
'underscore',
'backbone'
], function Filter_load($, _, Backone) {
'use strict';
/**
* Representation of Filter settings
*/
var Filter = Backone.Model.extend({
/**
* Define default values
*/
defaults: {
tags: [],
range: 0,
offset: 0,
limit: 10
},
/**
* Increase filter offset by filter limit
*/
increaseOffset: function Filter_increaseOffset() {
this.attributes.offset += this.attributes.limit;
}
});
return Filter;
});
И вот часть теста для этого класса
define([
'model/Filter'
], function FilterTest_load(Filter) {
/**
* Validate the model/Filter class
*/
return describe('A Filter', function() {
/**
* Validate behavior of offset property
*/
describe('offset', function() {
var filter = new Filter();
it('should be 0', function() {
expect(filter.get('offset')).toBe(0);
});
it('and change to 100', function() {
filter.set('offset', 100);
expect(filter.get('offset')).toBe(100);
});
it('should increase by 11', function() {
filter.set('limit', 11);
filter.set('offset', 0);
expect(filter.get('offset')).toBe(0);
filter.increaseOffset();
expect(filter.get('offset')).toBe(11);
});
it('should increase stay on 10', function() {
filter.set('limit', 0);
filter.set('offset', 10);
expect(filter.get('offset')).toBe(10);
filter.increaseOffset();
expect(filter.get('offset')).toBe(10);
});
});
});
});
Заранее спасибо