Доступность отчетов о тестировании для слепых - PullRequest
4 голосов
/ 20 декабря 2011

В настоящее время я помогаю члену моей команды овладеть нашим новым проектом и инструментами, которые мы используем.Мы используем Java в качестве основного языка.Особенность моего коллеги в том, что он слепой.Он работает в основном с Emacs, и он запускает цели maven в терминале.

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

  • Использовать интегрированное тестовое покрытие IntelliJ (оно использует EMMA и показывает зеленый, красный или желтый цвет рядом с каждой строкой).Очень удобно, так как я вижу эту информацию сразу после запуска тестов, без дальнейшего взаимодействия

    Это не будет работать для моего коллеги, поскольку он не может использовать IntelliJ, и, вероятно, не будет работать в любом случае, так кактекстовое представление информации о покрытии отсутствует

  • Использовать отчеты Cobertura.Они используют одну и ту же концепцию линии зеленого / красного цвета Они подходят для макроинформации, например общего покрытия в классе, но не для проверки того, какая строка не была покрыта.На самом деле он мог покопаться в HTML-источниках отчета и выяснить, какой из них имеет класс nbHitsUncovered, но это кажется очень непрактичным.

Я бы очень хотел показать ему, как получитьего данные покрытия быстро.Кто-нибудь знает инструмент, который показывает покрытие, не полагаясь на цвета?Или мы должны написать свои собственные?(например, путем преобразования отчета в формате HTML)

Ответы [ 3 ]

5 голосов
/ 20 декабря 2011

Я совершенно слепой разработчик, который работает над Windows с помощью программы чтения с экрана Jaws for Windows, так что это не будет точно соответствовать разработчику, с которым вы работаете. При небольшом программировании кажется, что с результатами теста на кобертуре легче всего справиться. Основываясь на следующем примере XML-отчета, не составит труда собрать быстрый Perl-скрипт для проверки строк с количеством обращений 0. https://raw.github.com/jenkinsci/cobertura-plugin/master/src/test/resources/hudson/plugins/cobertura/coverage-with-data.xml Я смог выяснить, что строка 24 была единственной, выполненной 0 раз с быстрым поиском для

Hits="0"

Хотя мне удалось выяснить, какая строка не была выполнена, мне пришлось немного прокрутить вверх, чтобы выяснить, в каком классе и методе была расположена строка. Быстрый сценарий Perl может избавить от необходимости прокручивать назад и предоставлять пакет, класс и метод, в котором строка расположена более эффективно. Я взглянул на пример отчета Emma HTML с использованием Google Chrome, и он был довольно доступен. Я мог бы сказать, какие методы были полностью протестированы, а какие нет. Выяснить, какие строки были выполнены, а какие нет, было сложнее. Я мог бы сказать, что метод не был выполнен на 100%, а затем перейти к нему в отчете. Затем мне пришлось использовать нажатие клавиш, предоставляемое программой чтения с экрана, чтобы объявить цвет в каждой строке кода. Я забыл точные названия цветов, но я мог сказать, какие строки были и не были выполнены, так как моя программа чтения с экрана перечисляла их как имеющие разные цвета. Это работало, но было медленно, так как мне приходилось вручную проверять каждую строку метода; это не было полностью выполнено, так как моя программа чтения с экрана не может автоматически объявлять об изменении цвета. Я не уверен, как ваш разработчик сделает то же самое, так как я не знаю его точную настройку вспомогательных технологий.

2 голосов
/ 20 декабря 2011

Я покопался вокруг Антуана, поскольку я также использую SONAR и Cobertura в своих проектах и ​​заинтригован вашей проблемой.Из того, что я вижу, когда вы указываете задаче ANT генерировать «html» в качестве вывода, вы получаете всю необходимую информацию о строках, но, как вы отметили, это не легко разбираемый формат (и, возможно, подлежащий изменению).

С SONAR я говорю Cobertura вывести «xml», что дает мне файл с именем coverage.xml с выводом.К сожалению, он не включает построчные данные, и я не вижу никаких параметров задачи ANT , чтобы включить их из документов Cobertura.

Мне имеет смысл, что файл с именем cobertura.ser содержит все необходимые данные, но только HTML-отчет отображает их для вас.Я полагаю, что ответ на ваш вопрос может заключаться в попытке извлечь необходимые сериализованные данные из cobertura.ser.

Глядя на исходный код, я вижу следующие классы

net.sourceforge.cobertura.reporting.html.HTMLReport
net.sourceforge.cobertura.reporting.xml.XMLReport

Что яПодозреваю, что вы можете попытаться это сделать - взять копию HTMLReport в качестве основы и попытаться записать тот же вывод, что и XML, который затем можно проанализировать для своих собственных целей (или настройте вызовы тех же методов, которые используются HTMLReport в XMLReport).Я вижу строку nbHitsUncovered в HTMLReport, так что, надеюсь, у вас есть только один класс для записи.

Я погуглил и не вижу, чтобы кто-то делал это, но это выглядит как полезное улучшение.

0 голосов
/ 20 декабря 2011

Как насчет использования скрипта GreaseMonkey, который ищет все строки, имеющие класс nbHitsUncovered и добавляет список / таблицу, содержащую информацию, необходимую для отчета?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...