#javascript #node.js #mocha.js #sails.js #istanbul
#javascript #node.js #mocha.js #sails.js #istanbul
Вопрос:
Я пытаюсь заставить инструмент покрытия кода Istanbul работать с Sails.js 0.10.x приложение.
Я видел http://blog.sergiocruz.me/unit-test-sailsjs-with-mocha-and-instanbul-for-code-coverage / но для этого используется 0.9.x, и выполнение тех же шагов с 0.10.x не работает из-за изменений в настройке Grunt.
Я попытался адаптировать его следующим образом:
-
tasks/config/istanbulCoverage.js
:module.exports = function (grunt) { grunt.config.set('mocha_istanbul', { coverage: { src: 'test', options: { coverageFolder: 'coverage', mask: '**/*.spec.js', root: 'api/' } } }); grunt.loadNpmTasks('grunt-mocha-istanbul'); };
-
tasks/register/coverage.js
:module.exports = function (grunt) { grunt.registerTask('coverage', [ 'mocha_istanbul:coverage' ]); };
Но это приводит к созданию только /coverage
каталога, но в нем не создаются файлы.
Сообщений об ошибках нет, все тесты пройдены, и все кажется нормальным, за исключением того, что отчет о покрытии не создается.
Кто-нибудь знает, что не так? Я на Windows, если это имеет значение, но позже попробую использовать виртуальную машину * nix.
Комментарии:
1. Похоже, проблема с парусами. lower() в 0.10.x. Он удаляет всех слушателей, включая, по-видимому, Istanbul! github.com/balderdashy/sails/issues/1883#issuecomment-46927318
2. Вы когда-нибудь заставляли это работать @blah238?
3. @JasonKulatunga Да, это исправлено в главной ветке Sails, но пока нет npm-релиза с ним. Смотрите ссылку в моем предыдущем комментарии.
Ответ №1:
Я обновил Sails до версии 0.10.4. Моя конфигурация похожа на вашу, за исключением того, что я использую grunt.registerTask('test',...)
. Затем запустите grunt test
. Он работает хорошо, включая отчет о покрытии. Попробуйте.