Конвертировать Xcode 11 testresult .xcresult в JUnit? - PullRequest
1 голос
/ 30 апреля 2020

Начиная с Xcode 11 результирующий выходной файл из автоматического тестирования (модульные тесты или UITests) стал .xcresult (см. Скриншот ниже).

enter image description here

До Xcode 11 в тестовой папке, которая использовалась для создания файла JUnit, был создан файл TestSummaries.plist.

Файл JUnit затем использовался в Jenkins CI для:
- Показать результаты теста
- Отправлять электронные письма, уведомляющие членов команды о сбоях.
- Хранить архив результатов и их параметров

Но теперь кажется, что нет доступного инструмента командной строки для анализа файла .xcresult, который содержит:
- Результаты теста
- Покрытие кода
- Снимки экрана (они не очень интересны)

Я пробовал xcpretty: https://github.com/xcpretty/xcpretty, но тот просто говорит, что было выполнено 0 тестов, когда на самом деле выполнено около 68

Не уверен, имеет ли это значение, но я используйте .xctestplan и ниже команду xcodebuild

xcodebuild -scheme Debug -workspace MyApp.xcworkspace -destination 'platform=iOS Simulator,OS=12.4,name=iPhone Xs Max' test -testPlan UnitTests

Я также увидел, что был установлен инструмент командной строки с Xcode 11, который решает часть головоломки:

$ xcrun xcresulttool --path ResultBundle.xcresult --format json > ResultBundle.json

Но это разбирает только один слой

Я также посмотрел на xcparse , и они, кажется, на правильном пути, например, он решил разобрать файл .xcresult и получить покрытие кода и скриншоты, но они почему-то не включали самые важные часть .xcresult (для нашей компании), которая является результатами тестов. Как 47 удалось 4 не удалось, и они потерпели неудачу, эта часть.

В заключение: Как я могу преобразовать .xcresult в файл JUnit?

Бонус : Я увидел, что Apple включила подробное описание формата .xcresult, позвонив:

xcrun xcresulttool formatDescription

Apple сделала это так, чтобы будущие изменения в формате .xcresult могли автоматически обрабатываться сторонними библиотеками, так что решение, которое создаст файл JUnit, подойдет, решение, которое создает файл JUnit и каким-то образом работает с «xcrun xcresulttool formatDescription», даже лучше, так как оно является будущим:)

...