Существует ли автоматизированный способ убедиться, что все части кода прошли модульное тестирование?

StackOverflow https://stackoverflow.com/questions/2542574

  •  23-09-2019
  •  | 
  •  

Вопрос

Я написал тесты JUnit для своего класса и хотел бы, чтобы он сообщал мне, есть ли какая-либо часть моего кода, которая не прошла модульное тестирование.Есть ли способ сделать это?

Это было полезно?

Решение

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

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

Да, такие инструменты покрытия, как кобертура или Эмма.

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

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

Вам нужны некоторые инструменты покрытия кода.Видеть здесь (http://java-source.net/open-source/code-coverage) для некоторых

Если вы посмотрите на первый, я думаю, что он делает то, что вам нужно.

Cobertura — это бесплатный инструмент Java, который подсчитывает процент кода, к которому обращаются тесты.Его можно использовать для определения того, какие части вашей Java-программы не покрыты тестами.Он основан на jcoverage.Особенности Кобертуры:

  • Может быть выполнен из муравья или из командной строки.

Ваш заголовок и ваш вопрос различаются.Инструменты, упомянутые в других ответах, могут сказать вам, какая часть кода была нет проверено (= вообще не выполнено).«Убедиться, что все части кода прошли модульное тестирование» — это другое дело.Инструменты покрытия могут сказать вам, были ли выполнены все строки/инструкции, но они не гарантируют, что все функционально проверено (все совокупности данных, все пути выполнения и т. д.).Это требует определенных умственных способностей.На мой взгляд, тестовое покрытие часто дает неправильное ощущение безопасности.Например.тестирование тривиальных геттеров значительно увеличивает охват, но совершенно бесполезно.

Если вы используете IntelliJ, то есть кнопка под названием

«Беги с покрытием»

Run with Coverage

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top