Как измерить покрытие кода в веб-приложении с помощью модульных и функциональных тестов

Я немного застрял с задачей, которую я исследовал. Речь идет о покрытии кода в реагирующем веб-приложении.

Я реализовал несколько модульных тестов, используя шутку + фермент. также некоторый функциональный тест с использованием огурца для получения функций корнишона и puppeteer для автоматизации браузера.

Я смог получить покрытие из кода, созданного веб-пакетом и обслуживаемого на моем локальном хосте с помощью puppeteer и istanbul, посредством функциональных тестов. Кроме того, я получаю покрытие кода модульным тестом с помощью шутки (кстати, для этого он включает Стамбул).

Проблема в том, что я чувствую, что это две разные метрики, потому что я тестирую компоненты с помощью шутки + фермента файл за файлом, а с другой стороны, у меня есть покрытие кода от puppeteer, которое на самом деле представляет собой один встроенный файл js.

Целью должно быть получение покрытия кода модульными тестами и функциональными тестами.

Итак, мои вопросы:

  • Имеет ли смысл измерять покрытие кода на юнит-тестах и ​​функциональных тестах?

  • имеет смысл объединять покрытие кода из юнит-тестов и функциональных тестов? и если имеет смысл, как это сделать?

  • как лучше всего получить покрытие кода из веб-приложения?

Кросс-пост: sqa.stackexchange.com/questions/38175/…

Niels van Reijmersdal 11.03.2019 15:01
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
1
385
1

Ответы 1

В целом ваш подход к измерению, регистрации и составлению отчета о покрытии кода будет адаптирован к вашему варианту использования. Это означает, что на ваш вопрос нет четких правильных или неправильных ответов. Я постараюсь дать вам идеи, которые помогут вам выбрать наилучший подход для вас и вашей команды.

Я бы начал с вопроса, почему мы измеряем покрытие кода? т.е. Каково изменение в том, как работает команда, которую вы пытаетесь создать? Я вернусь к этому вопросу, отвечая на ваши конкретные вопросы.

На этом этапе стоит убедиться, что покрытие кода будет способствовать тому поведению, которое вы ищете. Подробнее об этом смотрите в этом бумага. Я попытался решить этот вопрос в недавнем Сообщение блога.

Я делаю здесь несколько предположений о структуре команды, в которой вы работаете, поэтому, пожалуйста, простите меня, если предположения неверны.

measure the code coverage on unit tests and functional tests?

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

merge code coverage from unit tests and functional tests?

Давайте рассмотрим пример, в котором вы хотите побудить разработчиков писать больше модульных тестов. В этом случае я бы сказал нет, не объединяйте покрытие. Желаемое изменение поведения заключается в том, чтобы разработчики написали больше тестов, поэтому вы не хотите маскировать их отсутствие тестирования, сообщая метрику, которая включает функциональные тесты от группы контроля качества.

Однако, если вы рассматриваете команду разработки программного обеспечения и хотели бы, чтобы вся команда (разработчики и QA) провела больше тестов, тогда абсолютно объедините цифры покрытия и сообщите об общем покрытии.

if has sense how to do that?

Существует множество инструментов, которые позволят вам комбинировать информацию о покрытии из нескольких прогонов. Один из моих любимых (при условии, что вы можете использовать облачные сервисы) — CodeCov. Это отличный способ визуализации покрытия кода с минимальными усилиями по настройке.

what is the best approach to get code coverage from a webapp?

Я оставлю это для тех, кто более подробно, чем я, разбирается в технологиях, которые вы используете.

Другие вопросы по теме