У меня Hudson в качестве сервера непрерывной интеграции, и я хочу использовать опцию «Опубликовать отчет о результатах тестирования JUnit». Но я не использую инструменты xUnit для тестирования, вместо этого у меня есть сценарии оболочки, которые запускают тесты и возвращают результаты в простом формате. Я думаю сделать сценарий, который преобразует эти результаты в формат JUnit. Мне интересно, как должен выглядеть файл JUnit?
183
Ответы:
Я сделал подобное несколько месяцев назад, и оказалось, что этого простого формата было достаточно, чтобы Хадсон принял его в качестве протокола тестирования:
На этот вопрос есть ответы с более подробной информацией: Спец. для вывода XML JUnit
источник
class
был отклонен и толькоclassname
работал.<testsuite tests="(number of tests)">
экс.<testsuite tests="10">
,<testcase classname="foo.bar" name="ATest" />
это поместит класс bar в пакет foo для Jenkins, что сделает вашу тестовую коллекцию более организованной.Я только что взял junit-4.xsd, с которым связались другие, и использовал инструмент с именем XMLSpear для преобразования схемы в пустой XML-файл с параметрами, показанными ниже. Это (слегка очищенный) результат:
Некоторые из этих предметов могут встречаться несколько раз:
testsuites
Элемент может быть только один , поскольку так работает XML, ноtestsuite
внутриtestsuites
элемента может быть несколько элементов .properties
элемент может иметь несколькоproperty
дочерних элементов .testsuite
элемент может иметь несколькоtestcase
дочерних элементов .testcase
элемент может иметь несколькоerror
,failure
,system-out
илиsystem-err
ребенок.источник
Rootelement
:testsuites
,Max recursive de...
:2
,Max Repeat factor
:2
,include optional elements
: (да = галочка)include optional attributes
: (да = галочка)Верхний ответ на вопрос Андерс Линдаль относится к файлу XSD .
Лично я нашел этот файл xsd также очень полезным (я не помню, как я нашел тот). Это выглядит немного менее пугающим, и, насколько я это использовал, все элементы и атрибуты, похоже, были распознаны Дженкинсом (v1.451)Хотя одно: при добавлении нескольких
<failure ...
элементов в Jenkins оставался только один. При создании XML-файла я объединяю все ошибки в одном.Обновление 2016-11 Ссылка сейчас не работает. Лучшей альтернативой является эта страница из cubic.org: формат файла отчетов JUnit XML , где были предприняты значительные усилия для предоставления разумного документированного примера. Пример и xsd скопированы ниже, но их страница выглядит лучше.
образец файла JUnit XML
JUnit XSD файл
источник
Я не смог найти никакой хорошей информации по этому поводу, поэтому я сделал несколько проб и ошибок. Следующие атрибуты и поля (и только они) распознаются Jenkins (v1.585).
(Я начал с этого образца XML-документа и работал в обратном направлении.)
источник
Базовая структура Вот пример выходного файла JUnit, показывающий пропущенный и неудачный результат, а также один переданный результат.
Ниже приведена документированная структура типичного отчета JUnit XML. Обратите внимание, что отчет может содержать 1 или более наборов тестов. Каждый набор тестов имеет набор свойств (запись информации об окружении). Каждый набор тестов также содержит 1 или более тестовых наборов, и каждый тестовый набор будет содержать пропущенный узел, узел сбоя или ошибки, если тест не пройден. Если контрольный пример пройден, то он не будет содержать никаких узлов. Для получения более подробной информации о том, какие атрибуты действительны для каждого узла, обратитесь к следующему разделу «Схема».
источник
Существует несколько схем для результатов "JUnit" и "xUnit".
model/xsd
)Обратите внимание, что существует несколько версий схемы, используемой плагином Jenkins xunit (в текущей последней версии
junit-10.xsd
добавлена поддержка формата Erlang / OTP Junit).Некоторые платформы тестирования, а также плагины для создания отчетов в стиле "xUnit" также используют свой собственный секретный соус для генерации отчетов в стиле "xUnit", которые могут не использовать конкретную схему (пожалуйста, прочитайте: они пытаются, но инструменты могут не проверять против любых одна схема). Тесты на Python в Дженкинсе? дает быстрое сравнение нескольких из этих библиотек и небольшие различия между генерируемыми отчетами XML.
источник
Хорошие ответы здесь об использовании Python: (есть много способов сделать это) Тесты Python в Jenkins?
ИМХО, лучший способ - написать тесты python unittest и установить pytest (что-то вроде 'yum install pytest'), чтобы установить py.test. Затем запустите такие тесты: «py.test --junitxml results.xml test.py» . Вы можете запустить любой скрипт Python unittest и получить результаты jUnit xml.
https://docs.python.org/2.7/library/unittest.html
В конфигурации сборки jenkins Действия после сборки Добавьте действие «Опубликовать отчет о результатах теста JUnit» с помощью файла result.xml и других файлов результатов теста, которые вы создадите.
источник
Я решил опубликовать новый ответ, потому что некоторые существующие ответы устарели или неполны.
Прежде всего: ничего подобного нет
JUnit XML Format Specification
, просто потому, что JUnit не создает никаких отчетов XML или HTML.Само генерирование XML-отчета происходит из задачи Ant JUnit / плагина Maven Surefire / Gradle (в зависимости от того, что вы используете для запуска своих тестов). Формат отчета XML был впервые представлен Ant, а затем адаптирован Maven (и Gradle).
Если кому-то просто нужен официальный формат XML, тогда:
Надеюсь, это кому-нибудь поможет.
источник
**/build/test-results/**/TEST-*.xml
. Большое спасибо!!!