Не могу заставить работать скрипт '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 ответа
Похоже, ошибка произошла из-за профиля. Когда я добавил свой профиль обеспечения и повторил попытку, проблема была решена.
Затем у меня возникла еще одна проблема с MessageKit: "Ошибка сегментации: 11" Это была проблема с настройкой CocaPods Podfile. Поэтому мне пришлось переключить режим компиляции для отладки с "Single File" на "Whole Module", щелкнув "Pods" в навигаторе проекта XCode, затем выбрать "MessageKit" в целевых объектах "pods", затем вкладку "Builds settings", затем в поисковике нажать "режим компиляции" и переключить "Single". Файл "в" Весь модуль "и перезапустите скрипт run-sonar-swift.sh
⚠️ каждый раз, когда вы делаете установку / обновление модуля или что-то, что может заменить модули, вы должны переключать режим компиляции для Отладки с "Один файл" на "Весь модуль" для модуля, который выдает ошибку при запуске run-sonar. swift.sh с -v для многословия.
После этого еще не было конца моих проблем! На самом деле у меня была последняя проблема, которая была ошибкой с модулем SwipeCellKit: "Нет такого модуля SwipeCellKit". Чтобы решить эту проблему, следуйте инструкциям, приведенным здесь /questions/25051506/net-takogo-modulya-kogda-ya-ispolzuyu-cocoapods/25051513#25051513
Затем я попытался еще раз, и остальная часть сценария запустилась (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
просто чтобы сэкономить немного времени, потому что портной займет время
- А после запуска скрипта... 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