Хорошо, проигнорируйте мой предыдущий ответ, поскольку кто-то сказал мне, что это не решило проблему.
Новый ответ:
1) Проверьте последнюю шутку (v 0.22): https://github.com/facebook/jest
2) Команда facebook помещает Стамбул как часть отчета о покрытии, и вы можете использовать его напрямую.
3) После выполнения jest вы можете получить отчет о покрытии на консоли, а в корневой папке, установленной jest, вы найдете отчет о покрытии в формате json и html.
4) К вашему сведению, если вы устанавливаете из npm, вы можете не получить последнюю версию; поэтому сначала попробуйте github и убедитесь, что покрытие именно то, что вам нужно.
Старый ответ:
У меня такая же проблема. Короткий ответ: Istanbul
и Jest
НЕ работают вместе.
Проверьте следующие страницы для получения более подробной информации:
https://github.com/facebook/jest/issues/101
jest использует contexttify, который запускает сценарии JS в контексте V8 в собственном коде, таким образом обходя все перехватчики istanbul require и vm.runInThisContext. Таким образом, istanbul cover не будет работать, поскольку стандартные подключаемые функции node.js не используются, и файлы предварительной инструментальной обработки тоже не помогут, поскольку каждый тест выполняется в своей собственной песочнице, и нет глобального, в котором можно было бы спрятать объект покрытия.
@Ciro Costa: config.collectCoverage
НЕ работает, так как это функция TODO. Пожалуйста, проверьте исходный код.