Java: измерьте покрытие кода для удаленных тестов сценариев

Часть проблемы - то, что несколько математических символов передают чертовски много информации. При чтении нормальной книги программирования это полно слов и кода. Ни один из них не является супер подробным (хотя я часто должен замедляться намного больше на коде, чем нормальные слова). Однако одно сложное математическое уравнение может легко быть экраном, полным кода программы или слов. У нас есть все виды простых нотаций, которые передают сложные процессы.

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

Так так или иначе просто, потому что Ваши глаза тускнеют, не означает, что необходимо сдаться. В первый раз, когда Вы видите уравнения, Вы, вероятно, будете в чтении английским текстовым режимом и иметь для приостановки для рассмотрения их. При осмотре через них медленно и уделение внимания, что означают все символы, один шаг за один раз может привести к ответу для Вас. Если существует некоторая нотация, Вы не видели прежде, существует, вероятно, вводная глава или приложение, объясняя нотацию, таким образом проверьте там. Наконец, ищите другие источники. Используйте Google/Википедию для поиска уравнений для понятия, и можно найти деривацию и/или доказательство, что можно следовать. Дополнительно другой может помочь Вам понять текущие доказательства/деривации лучше. Даже если Ваше понимание доказательства/деривации не улучшится, Ваше дополнительное исследование, вероятно, поможет в Вашем понимании уравнения.

8
задан Peter Mortensen 2 November 2009 в 09:37
поделиться

3 ответа

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

2
ответ дан 5 December 2019 в 17:38
поделиться

Обложка кода - отличный инструмент. В вашем случае вы должны использовать интерфейс командной строки , который вы можете включить в существующие сценарии PowerShell.

0
ответ дан 5 December 2019 в 17:38
поделиться

AFAIK, все инструменты покрытия кода используйте ту же концепцию (я опущу часть отчетности и проверки):

  1. Сначала обработайте код (то есть разместите маркеры).
  2. Затем запустите тесты для выполнения инструментального кода (для активации маркеров и сбора данных).

Для второго шага обычным вариантом использования действительно является запуск тестов JUnit, но ваши тесты не обязательно должны быть тестами JUnit. Фактически, их даже не нужно автоматизировать.

И инструментальный код не обязательно должен выполняться в контексте модульного теста, его можно упаковать в WAR / EAR и развернуть в контейнере (это просто потребуется немного больше работы).

Для Cobertura это то, что мы можем прочитать в Часто задаваемых вопросах :

Использование Cobertura с веб-приложением

У меня есть автоматизированные тесты, которые использовать HttpUnit / HtmlUnit / Empirix / Rational Робот, могу я использовать Cobertura?

Да! Процесс немного больше вовлечены, но концепция та же. Первый инструмент, который вы скомпилировали классы. Затем создайте свой военный файл. Затем разверните файл войны в свой сервер приложений (Tomcat, JBoss, WebLogic, WebSphere и т. Д.). Теперь беги ваши тесты.

По мере доступа к вашим классам они создаст файл "cobertura.ser" на диск. Возможно, вам придется покопаться в немного, чтобы найти это. Кобертура ставит это файл в том, что он считает текущий рабочий каталог. Обычно это каталог, который сервер приложений был запущен из (например, C: \ Tomcat \ bin) Примечание: Этот файл не записывается на диск пока сервер приложений не закроется. См. Ниже, как обойти это.

Теперь, когда вы знаете, где cobertura.ser, вы должны измените шаг развертывания, чтобы он перемещает исходный cobertura.ser в соответствующий каталог в вашем сервер приложений, а затем перемещает его назад, когда закончили тестирование. Тогда беги cobertura-report.

[...]

Для Эммы это то, что сказано в документации :

3.11. Как использовать EMMA в {WebLogic, Websphere, Tomcat, JBoss, ...}?

Во-первых, мало шансов, что вы сможете использовать режим "на лету" (emmarun) с полноценный контейнер J2EE. Причина кроется в том, что многие функции J2EE требуют специальной загрузки классов, которая будет происходить вне инструментального загрузчика классов EMMA. Сервер может работать нормально, но вы, скорее всего, не получите данных о покрытии.

Таким образом, правильная процедура - инструментировать ваши классы перед развертыванием (автономный режим). Офлайн-инструментарий всегда следует той же последовательности компиляции / инструмента / пакета / развертывания / получения покрытия / создания отчетов. Выполните следующие шаги:

  1. используйте инструмент EMMA instr для инструментария желаемых классов. Это можно сделать на этапе посткомпиляции перед упаковкой. Тем не менее, многие пользователи также считают удобным позволить EMMA обрабатывать их jar-файлы напрямую (либо на месте, используя режим перезаписи, либо создавая отдельные инструментальные копии всего в режиме полного копирования);
  2. выполняйте упаковку J2EE как обычно, но не включайте emma.jar в качестве библиотеки на этом уровне, то есть в пределах вашего .war, .ear и т. д.
  3. найдите ту JRE, которая используется контейнером, и скопируйте emma.jar в его каталог / lib / ext. Если это невозможно, добавьте emma.jar в путь к классам сервера (специфичным для сервера способом);
  4. разверните ваши инструментированные классы, .jars, .wars, .ears и т. Д. И испытайте / протестируйте свое приложение J2EE через клиента -внутренние тестовые наборы или в интерактивном режиме, или любым другим способом;
  5. для получения файла дампа покрытия, у вас есть три варианта, описанные в разделе Какие существуют варианты управления, когда EMMA выгружает данные покрытия времени выполнения ?. Настоятельно рекомендуется использовать управляющую команду покрытия.get с инструментом ctl, доступным в v2.1.

Для клевера проверьте страницу Работа с распределенными приложениями .

7
ответ дан 5 December 2019 в 17:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: