Кто-то получил покрытие конвертации в новой версии xcode12 — SonarQube

#ios #swift #xcode #sonarqube

#iOS #swift #xcode #sonarqube

Вопрос:

Я пытаюсь выполнить преобразование для SonarQube для интерпретации покрытия, и я получаю эту ошибку:

 Error: Error Domain=XCCovErrorDomain Code=0 "Failed to load result bundle" UserInfo={NSLocalizedDescription=Failed to load result bundle, NSUnderlyingError=0x7fdaa840a8d0 {Error Domain=IDEFoundation.ResultBundleError Code=0 "This version of Xcode does not support opening result bundles created with versions of Xcode and xcodebuild using the v1 API."}}
The operation couldn’t be completed. (cococoLibrary.Bash.Error error 0.)
  

Комментарии:

1. У меня нет опыта работы с SonarQube, но ошибка выглядит довольно ясно для меня. Вероятно, у вас есть два варианта. A) Вернитесь к предыдущей версии Xcode, которую вы использовали. Б) Получите новую версию API (если она есть), которая, вероятно, будет поддерживать открытие предыдущих результатов.

2. Убедитесь, что вы используете последнюю версию. В этом месяце выпущена новая версия: 8.5.

3. @LeoDabus Использование последней версии xcode было определением команды разработчиков, нам нужно решить то, что ранее работало в версии xcode11. Спасибо

Ответ №1:

Решением было обновить slather до версии 2.5, а также сгенерировать покрытие в общем режиме sonarqube. Следуйте инструкциям для успешного воспроизведения:

 Build
xcodebuild -workspace 'YourProject.xcworkspace' -scheme DEV -derivedDataPath Build/ -enableCodeCoverage YES clean build test CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO -destination 'platform=iOS Simulator,name=iPhone 8,OS=14.0'

Slather generate sonarqube generic xml
slather coverage --jenkins --sonarqube-xml --build-directory ./Build --output-directory ./sonar-reports --scheme DEV --workspace YourProject.xcworkspace

Run analise Sonarqube
sonar-scanner -Dsonar.sources=. -Dsonar.coverageReportPaths=./sonar-reports/sonarqube-generic-coverage.xml -Dproject.settings=sonar-project.properties -Dsonar.qualitygate.wait=true
  

Ответ №2:

На этой странице приведены шаги по созданию покрытия кода для различных версий Xcode. в основном есть 3 шага, как показано в описании.

  1. Сборка проекта
  2. Создать отчет о покрытии кода
  3. Импорт отчета о покрытии кода

https://github.com/SonarSource/sonar-scanning-examples/tree/master/swift-coverage

Это популярная страница для интеграции CI с Sonar, а также из SonarSource.