Мне нужно объединить отчет о покрытии Cypress и отчет о покрытии Jest в контексте приложения Next.js.
Jest отобразит файлы как my-app/src/whatever
. Кипарис показывает только src/whatever
.
Cypress не будет включать my-app
, а Jest включает, что вызывает проблему при попытке объединить покрытие с использованием рекомендуемого метода из примеров Cypress. Альтернативой может быть использование Cypress для отображения папки.
Решение 1: Jest соответствует Cypress?
Я бы хотел, чтобы Jest вычислял путь к закрытым файлам относительно rootDir, не отображая его.
Например, в отчете о покрытии будет отображаться my-app/src/whatever
. Он должен показывать только src/whatever
, без my-app
.
Это выполнимо?
Решение 2: Cypress соответствует Jest?
Альтернативой является использование Cypress для другого корневого каталога, но я не нашел таких вариантов. Имхо, это наименее перспективный вариант. Есть ли соответствующий вариант для этого?
Дополнительный вопрос: оба инструмента имеют разное количество строк, вероятно, из-за взаимодействия TypeScript + Babel + Webpack с кодом. Как я могу отладить эту проблему?
Спасибо
Изменить для ясности
combineCoverage(sentCoverage)
, добавив ее после пакета покрытия кода, и внутри этого сделать другую настройку пути с вашей собственной версиейfixSourcePaths()
. Чтобы быть уверенным, мне понадобится репо, чтобы протестировать его. - person Richard Matsen   schedule 12.03.2020src
. Однако Next.js не имеет отдельной папкиsrc
по умолчанию, например (перемещение кода в src действительно было для меня быстрым решением). Я был бы рад найти более общее решение этой проблемы, например, когда у вас есть две папки, представьте себеsrc
иlegacySrc
по какой-то причине. - person Eric Burel   schedule 13.03.2020fixSourcePaths()
, но в комментариях говорится, что он делает две вещи: 1) изменяет относительные пути на абсолютные 2) удаляет материалы, связанные с веб-пакетом. Вы упомянули, что ищете противоположное (от абсолютного к относительному пути), или вы просто ищете согласованность между охватом Cypress и охватом Jest? Поскольку пакет Cypress направлен на их объединение, они уже должны быть согласованы. Вы должны конкретизировать некоторые детали в своем вопросе. - person Richard Matsen   schedule 13.03.2020collectCoverageFrom
вынуждают меня перечислять все допустимые папки. Вероятно, вы могли бы сделать этот комментарий ответом, но только в качестве быстрого исправления. Кроме того, имя папки может не отображаться (например,["components/*.ts"/, "pages/*.ts"]
удалит имя папки, чтобы сохранить только имя файла), так что в конце концов это может не сработать. - person Eric Burel   schedule 16.03.2020