2014-12-16 3 views
4

У меня есть приложение в node.js с использованием рамки mocha. У меня есть два исходных файла javascript, для которых я хочу взять покрытие кода (аз.js и b.js). Я использую istanbul для этой цели.Покрытие кода для нескольких файлов

Здесь проблема в том, что я не понимаю, как получить покрытие кода для нескольких файлов. Я использую следующий формат:

istanbul cover node_modules/mocha/bin/_mocha a.js 


istanbul cover node_modules/mocha/bin/_mocha a.js b.js 

, но, к сожалению, обе команды дают один и тот же покрытие кода, я думаю, что его принимают только a.js код. Есть ли решение для поиска покрытия кода для нескольких файлов?

ответ

2

Проблема в том, как разбираются аргументы в отношении Стамбула.

Предполагая, что mocha a.js b.js работает, как вы ожидали, то это должно быть эквивалент команда Стамбула:

istanbul cover node_modules/mocha/bin/_mocha -- a.js b.js 

Стамбул разделятся аргументы в -- и передать те о праве на сценарий узла слева. Как только это будет работать правильно, отчеты о покрытии в Стамбуле будут работать правильно.

Улучшение в верхней части этого было бы дать mocha директорию вместо явных имен файлов, если это возможно. Таким образом, этот код не должен изменяться, если имена файлов изменяются.

Вы также можете сделать покрытие более легким, используя Intern.js для тестирования, который фактически использует Стамбул и все инструменты вашего кода автоматически с очень маленькой настройкой.

Смежные вопросы