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





В целом ваш подход к измерению, регистрации и составлению отчета о покрытии кода будет адаптирован к вашему варианту использования. Это означает, что на ваш вопрос нет четких правильных или неправильных ответов. Я постараюсь дать вам идеи, которые помогут вам выбрать наилучший подход для вас и вашей команды.
Я бы начал с вопроса, почему мы измеряем покрытие кода? т.е. Каково изменение в том, как работает команда, которую вы пытаетесь создать? Я вернусь к этому вопросу, отвечая на ваши конкретные вопросы.
На этом этапе стоит убедиться, что покрытие кода будет способствовать тому поведению, которое вы ищете. Подробнее об этом смотрите в этом бумага. Я попытался решить этот вопрос в недавнем Сообщение блога.
Я делаю здесь несколько предположений о структуре команды, в которой вы работаете, поэтому, пожалуйста, простите меня, если предположения неверны.
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?
Я оставлю это для тех, кто более подробно, чем я, разбирается в технологиях, которые вы используете.
Кросс-пост: sqa.stackexchange.com/questions/38175/…