Не могу заставить работать скрипт 'run-sonar-swift'

Я пытаюсь запустить гидролокатор Swift. У меня уже есть sonarQube с плагином, и я могу получить к нему доступ локально, используя этот URL http://localhost:9000/. Я установил все предварительные условия, которые вы можете найти здесь:

https://github.com/Backelite/sonar-swift

Но я не могу понять, что это за ошибка, когда я запускаю run-sonar-swift.sh.

Если кто-нибудь может принести мне свет, я был бы очень благодарен.

Вот логи, когда я запускаю команду терминала ./run-sonar-swift.sh -v:

MacBook-Air: streamus-phoenix-ios oboujaouane $./run-sonar-swift.sh -v

Запуск run-sonar-swift.sh...

Количество проектов [1]

Файл проекта XCode: Streamus.xcodeproj

Файл рабочей области XCode: Streamus.xcworkspace

Схема приложения Xcode: Streamus Alpha

Симулятор назначения: платформа = iOS Simulator, имя = iPhone 6, OS = 11,3

Исключенные пути из покрытия:Тесты.

Создание каталога sonar-reports /

Выполнение тестов + xcodebuild clean build test -workspace Streamus.xcworkspace -scheme 'Streamus Alpha' -configuration Debug -enableCodeCoverage YES -destination 'платформа = Симулятор iOS, имя = iPhone 6, OS = 11.3' -destination-timeout 60

2018-05-12 10:34:14.031 xcodebuild [32149: 775290] IDETestOperationsObserverDebug: запись журнала диагностики для сеанса теста в: /var/folders/9v/vdbbf4j96hxgcxmtpntznytr0000gn/T/comest.apple.dt.AE6DID_D6D6D6D6 -4C7D-9F34-066A9DFEC5E9 / StreamusUITests-87E838E0-4F8F-4C19-B2AC-C2C0A274E8EC / Session-StreamusUITests-2018-05-12_103414-jhm3wz.log

2018-05-12 10: 34: 14.032 xcodebuild [32149: 769805] [MT] IDETestOperationsObserverDebug: (98FB295E-FE60-46AA-8589-015B0DD2E617) Начало тестового сеанса StreamusUITests-98FB295E-FE60-46A0-0808 2018D-8589 в 2018 году -12 10:34:14.031 с Xcode 9E145 на цели { SimDevice: iPhone 6 (672DE879-E48B-45DA-BFD9-D0412F51A706, iOS 11.3, загружено) } (11,3 (15E217))

2018-05-12 10: 34: 14.061 xcodebuild [32149: 769805] [MT] IDETestOperationsObserverDebug: (458F86F6-1492-40F1-9F72-A88FC23BD985) Начало тестового сеанса StreamusTests-458F86F6-1492-40F1-9FB5885

2018-05-12 10: 34: 14.061 с Xcode 9E145 на цели { SimDevice: iPhone 6 (672DE879-E48B-45DA-BFD9-D0412F51A706, iOS 11.3, загружен) } (11.3 (15E217))

2018-05-12 10: 34: 14.061 xcodebuild [32149: 770075] IDETestOperationsObserverDebug: запись журнала диагностики для сеанса тестирования в: /var/folders/9v/vdbbf4j96hxgcxmtpntznytr0000gn/T/com.apple.dt.XEF7-9_D1A_D_P_D_WID_DID_A_D_D_D_D_39_06 -4C7D-9F34-066A9DFEC5E9/StreamusTests-4F203461-1372-49B7-A806-F130F168079E/Session-StreamusTests-2018-05-12_103414-MfIreE.log 2018-05-12 10:34:30.016 xcodebuild[32145] 769

Ошибка Domain=IDETestOperationsObserverErrorDomain Code=14 "Тестовая операция была отменена. Если вы считаете, что эта ошибка представляет собой ошибку, прикрепите файл журнала по адресу /var/folders/9v/vdbbf4j96hxgcxmtpntznytr0000gn/T/com.apple.dt.XCTest/IDETAEF7S -6391-4C7D-9F34-066A9DFEC5E9 / StreamusUITests-87E838E0-4F8F-4C19-B2AC-C2C0A274E8EC / Session-StreamusUITests-2018-05-12_103414-jhm3wz.log"

UserInfo = {NSLocalizedDescription = Тестовая операция была отменена. Если вы считаете, что эта ошибка представляет собой ошибку, прикрепите файл журнала по адресу /var/folders/9v/vdbbf4j96hxgcxmtpntznytr0000gn/T/com.apple.dt.XCTest/IDETestRunSession-9A7EF764-6391-4C7D-9F34-066A9Dream-U8EE 4F8F-4C19-B2AC-C2C0A274E8EC / Session-StreamusUITests-2018-05-12_103414-jhm3wz.log}

2018-05-12 10: 34: 30.016 xcodebuild [32149: 769805] Ошибка Domain=IDETestOperationsObserverErrorDomain Code=14 "Тестовая операция была отменена. Если вы считаете, что эта ошибка представляет собой ошибку, прикрепите файл журнала в / var / folder /9v/vdbbf4j96hxgcxmtpntznytr0000gn/T/com.apple.dt.XCTest/IDETestRunSession-9A7EF764-6391-4C7D-9F34-066A9DFEC5E9/StreamusTests-4F203461-1372-49B7-A806-F130F168079E/Session-StreamusTests-2018-05-12_103414-MfIreE.log" UserInfo={NSLocalizedDescription= Тестовая операция была отменена. Если вы считаете, что эта ошибка представляет собой ошибку, прикрепите файл журнала по адресу /var/folders/9v/vdbbf4j96hxgcxmtpntznytr0000gn/T/com.apple.dt.XCTest/IDETestRunSession-9A7EF764-6391-4C7D-9F34-066A9DreamF61es/St 1372-49B7-A806-F130F168079E/Session-StreamusTests-2018-05-12_103414-MfIreE.log}

Тестирование не выполнено: команда компоновщика завершилась неудачно с кодом выхода 1 (используйте -v для просмотра вызова) ** TEST FAILED **

Следующие команды сборки не выполнены:

Ld /Users/oboujaouane/Library/Developer/Xcode/DerivedData/Streamus-gwtdwpbaxrfgafdtejzjtpxyhhhq/Build/Intermediates.noindex/Streamus.build/Alpha-iphonesimulator/Stream64/es/xbubu/setup_setup_setup/x

Ld /Users/oboujaouane/Library/Developer/Xcode/DerivedData/Streamus-gwtdwpbaxrfgafdtejzjtpxyhhhq/Build/Intermediates.noindex/Streamus.build/Alpha-iphonesimulator/Streamus/es/sbu/6/sbu/6

(2 отказа)

  • ReturnValue = 65

  • установить + х

ОШИБКА - Команда 'xcodebuild test build test -workspace Streamus.xcworkspace -scheme Streamus Alpha -configuration Debug -enableCodeCoverage YES -Популярная платформа = Симулятор iOS, имя =iPhone 6,OS=11.3 -Время ожидания 60' не выполнено с кодом ошибки: 65

Заранее спасибо,

2 ответа

Решение
  1. Похоже, ошибка произошла из-за профиля. Когда я добавил свой профиль обеспечения и повторил попытку, проблема была решена.

  2. Затем у меня возникла еще одна проблема с MessageKit: "Ошибка сегментации: 11" Это была проблема с настройкой CocaPods Podfile. Поэтому мне пришлось переключить режим компиляции для отладки с "Single File" на "Whole Module", щелкнув "Pods" в навигаторе проекта XCode, затем выбрать "MessageKit" в целевых объектах "pods", затем вкладку "Builds settings", затем в поисковике нажать "режим компиляции" и переключить "Single". Файл "в" Весь модуль "и перезапустите скрипт run-sonar-swift.sh

Здесь, как переключиться на весь модуль вместо одного файла

⚠️ каждый раз, когда вы делаете установку / обновление модуля или что-то, что может заменить модули, вы должны переключать режим компиляции для Отладки с "Один файл" на "Весь модуль" для модуля, который выдает ошибку при запуске run-sonar. swift.sh с -v для многословия.

  1. После этого еще не было конца моих проблем! На самом деле у меня была последняя проблема, которая была ошибкой с модулем SwipeCellKit: "Нет такого модуля SwipeCellKit". Чтобы решить эту проблему, следуйте инструкциям, приведенным здесь /questions/25051506/net-takogo-modulya-kogda-ya-ispolzuyu-cocoapods/25051513#25051513

  2. Затем я попытался еще раз, и остальная часть сценария запустилась (SwiftLint, Tailor & Lizard), и я подумал, что на этот раз это, наконец, хорошо, но в конце сценария снова возникла ошибка с новым сообщением об ошибке, касающимся Lizard, которое было:

ОШИБКА: ошибка во время выполнения сканера SonarQube

ОШИБКА: файл MyprojectName/Domains/Repositories/Local/cacheManager.swift не может быть проиндексирован дважды. Убедитесь, что шаблоны включения / исключения создают несвязанные наборы для основного и тестового файлов.

ОШИБКА. Перезапустите сканер SonarQube, используя ключ -X, чтобы включить полное ведение журнала отладки.

Чтобы разрешить это включение / исключение, я следовал ответу, приведенному здесь: /questions/12774477/ne-mozhet-byit-proindeksirovan-dvazhdyi-testsourcedirectory-i-sourcedirectory-odinakovyi/12774487#12774487, добавив их в строку в файле sonar-project.properties под строкой sonar.swift.excludedPathsFromCoverage:

sonar.test.inclusions = ** / * Тест */**

sonar.exclusions = ** / * Тест */**

Я попробовал еще раз, но с параметром -notailor(запустите скрипт и пропустите Tailor):

./run-sonar-swift.sh -notailor -v

просто чтобы сэкономить немного времени, потому что портной займет время

  1. А после запуска скрипта... Boom новая ошибка... Но это была известная проблема:

Ошибка: вызвано: org.sonar.api.measures.PersistenceMode

И проблема объясняется здесь https://github.com/Backelite/sonar-swift/issues/118

Поэтому я скачал этот файл.jar "backelite-sonar-swift-plugin-0.4-sonar-7-quick-fix.jar", найденный здесь https://github.com/Hugal31/sonar-swift/releases/tag/0.4-sonar-7-quick-fix и замените его в плагинах моего локального SonarQube и попробуйте снова.

... и на этот раз после сотого запуска я наконец увидел свет

Надеюсь, этот ответ поможет, и если у вас есть вопрос, не стесняйтесь. Удачи повеселиться:)

PS: Здесь вы найдете несколько вариантов запуска скрипта с параметрами:

./run-sonar-swift.sh -noswiftlint -v (запустить скрипт с подробной опцией и пропустить SwiftLint)

./run-sonar-swift.sh -notailor -v (запустить скрипт с подробной опцией и пропустить Tailor)

./run-sonar-swift.sh -nounittests -v (если в вашем проекте не настроена схема запуска для тестирования с этим параметром)

Если вы хотите больше информации, проверьте в скрипте run-sonar-swift.sh и обойдите строки 125 ## КОМАНДНЫЕ ЛИНИИ ОПЦИИ

PS2: я также открыл проблему в sonar-swift GitHub, если это может помочь: https://github.com/Backelite/sonar-swift/issues/138

У меня была дополнительная проблема с oclint: oclint: Not enough positional command line arguments specified!, Поэтому мне пришлось изменить run-sonar-swift.sh немного сценария, чтобы заставить его работать: https://gist.github.com/Edudjr/79a2379842357c33709aecf040d9ae77

И это модель моего sonar-project.properties: https://gist.github.com/Edudjr/db51907068ea76b116d11d9a9b13f05f

Другие вопросы по тегам