Как автоматически генерировать отчет для тестирования Android в HTML

Я хотел бы автоматически генерировать отчет о единичном тестировании в формате html для приложения Android на сервере непрерывной интеграции Hudson.

Поэтому я сначала пытаюсь запустить тестовые примеры и собирать файлы результатов теста в формате xml. Затем я использую JUnitReport Task для преобразования файлов результатов XML в формат HTML.

Я запускаю тестовые примеры через платформу Android. Однако он предоставляет только подробные данные вывода, а не стандартный формат JUnit XML. Я не знаю, как создать тестовый отчет HTML-блока без файлов результатов JUnit XML.

Если я запускаю тестовые примеры с использованием Eclipse, он может экспортировать результаты в файлы XML с расходованной информацией за каждый тестовый пример. Эти XML-файлы могут быть правильно преобразованы в HTML с помощью JUnitReport Task. В результате кажется, что можно собрать результат теста с потребленной временем информацией.

Есть ли способ получить стандартный файл результата JUnit XML автоматически после запуска тестовых примеров на платформе Android-инструментов?

Solutions Collecting From Web of "Как автоматически генерировать отчет для тестирования Android в HTML"

У нас была схожая проблема в нашей компании. Мы проверили все доступные решения с открытым исходным кодом, и ни один из них не был действительно совершенным. Поэтому мы разработали и только открыли для него решение. Я до сих пор не говорю «окончательный», но, безусловно, намного лучше, чем афина или репортер python или любой последующий анализ. Вы можете найти его здесь: http://code.google.com/p/the-missing-android-xml-junit-test-runner/

Это обеспечивает:

  • Отдельный XML-файл для каждого пакета
  • XML-файлы создаются на устройстве (необходимо выполнить adb pull'ed после теста)
  • Время тестирования полностью поддерживается
  • У нас есть полная трассировка стека, сообщаемая в случае сбоя / ошибки

Вместо анализа исходного кода java (как в athena) или анализа вывода (скрипта python) мы расширили возможности андроидного инструментария. Таким образом, мы получаем все преимущества использования стандартных параметров командной строки для выбора теста, включения покрытия и т. Д. – все описано здесь: http://developer.android.com/guide/developing/testing/testing_otheride.html#RunTestsCommand .

Нам удалось успешно запустить код с использованием стандартных правил тестирования с охватом, проанализированным emma, и все это хорошо описано в Jenkins.

Я только что увидел, что Дэн Уотлинг из DroidDudes работает с инструментом Athena, который, похоже, похож на то, что вы хотите.

Вы можете найти его там: http://droiddudes.com/

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

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

Я думаю, что подход athena – это не больно, поскольку вы можете просто установить файл athena jar в своей системе и добавить следующую цель муравья

<property name="junit.dir" value="${basedir}/junit-results"/> <property name="athena.jar" value="/home/cruise/athena/athena-1.1.2.jar"/> <target name="prepare" description="Setup needed directories"> <mkdir dir="${junit.dir}"/> </target> <!-- This target will compile/install tested project as well as test project to ensure tests are executed against latest code --> <target name="athena" depends="prepare, -install-tested-project, install" description="Run tests and convert result to xml using athena"> <exec executable="java" os="Linux" failonerror="true"> <arg value="-cp"/> <arg value="${athena.jar}"/> <arg value="com.synaptik.athena.Athena"/> <arg value="${basedir}"/> <arg value="${junit.dir}/TEST-result.xml"/> </exec> </target> 

Из командной строки это просто вопрос запуска ant athena, и у вас есть результат теста в xml. Это также будет целью, которую должен вызвать ваш скрипт CruiseControl.