无法使脚本“run-sonar-swift”运作

4
我正在尝试运行Sonar 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 目标模拟器为:platform=iOS Simulator,name=iPhone 6,OS=11.3 从覆盖范围中排除的路径为:.Tests. 创建目录 sonar-reports/ 运行测试 + xcodebuild clean build test -workspace Streamus.xcworkspace -scheme 'Streamus Alpha' -configuration Debug -enableCodeCoverage YES -destination 'platform=iOS Simulator,name=iPhone 6,OS=11.3' -destination-timeout 60 2018-05-12 10:34:14.031 xcodebuild[32149:775290] IDETestOperationsObserverDebug:将测试会话的诊断日志写入: /var/folders/9v/vdbbf4j96hxgcxmtpntznytr0000gn/T/com.apple.dt.XCTest/IDETestRunSession-9A7EF764-6391-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-46AA-8589-015B0DD2E617,时间为 2018-05-12 10:34:14.031,使用 Xcode 9E145 在目标上 { SimDevice: iPhone 6 (672DE879-E48B-45DA-BFD9-D0412F51A706, iOS 11.3, Booted) } (11.3 (15E217)) 2018-05-12 10:34:14.061 xcodebuild[32149:769805] [MT] IDETestOperationsObserverDebug:(458F86F6-1492-40F1-9F72-A88FC23BD985) 开始测试会话 StreamusTests-458F86F6-1492-40F1-9F72-A88FC23BD985,时间为 2018-05-12 10:34:14.061,使用 Xcode 9E145 在目标上 { SimDevice: iPhone 6 (672DE879-E48B-45DA-BFD9-D0412F51A706, iOS 11.3, Booted) } (11.3 (15E217)) 2018-05-12 10:34:14.061 xcodebuild[32149:770075] IDETestOperationsObserverDebug:将测试会话的诊断日志写入: /var/folders/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 2018-05-12 10:34:30.016 xcodebuild[32149:769805] 错误域=IDETestOperationsObserverErrorDomain Code=14 "Test operation was canceled. If you believe this error represents a bug, please attach the log file at /var/folders/9v/vdbbf4j96hxgcxmtpntznytr0000gn/T/com.apple.dt.XCTest/IDETestRunSession-9A7EF764-6391-4C7D-9F34-066A9DFEC5E9/StreamusUITests-87E838E0-4F8F-4C19-B2AC-C2C0A274

In advance thank you,


你确定你已经安装了指定的模拟器吗? - Sulthan
是的,我确定。 - O. Boujaouane
2个回答

8
  1. 看起来错误是由配置文件引起的。当我添加了我的配置文件并再次尝试后,问题得到解决。

  2. 然后我遇到了另一个MessageKit的问题:“Segmentation fault: 11”。这是一个CocoaPods Podfile的配置问题。所以我不得不将编译模式从“单文件”切换到“整个模块”,方法是在Xcode项目导航器中单击Pods,然后选择pods目标中的MessageKit,在构建设置选项卡中单击搜索器,点击“编译模式”,将“单文件”切换为“整个模块”,并重新运行脚本run-sonar-swift.sh

Here how to switch to Whole Module instead of Single File

⚠️每次进行pod install/update或其他可能更改pods内容的操作时,都必须为在使用-v参数运行run-sonar.swift.sh脚本时发生错误的pod将Debug的编译模式从“单文件”切换为“整个模块”。

  1. 之后,我的问题还没有结束!实际上,我还有一个最后的问题,那就是SwipeCellKit pod出现了一个错误:“No such module SwipeCellKit”。要解决此问题,请按照这里给出的说明进行操作。

  2. 然后我再次尝试,剩下的脚本开始运行(SwiftLint、Tailor和Lizard),我认为这一次终于成功了,但是又出现了一个新的错误消息,在脚本末尾关于Lizard的错误信息是:

ERROR: Error during SonarQube Scanner execution

ERROR: File MyprojectName/Domains/Repositories/Local/cacheManager.swift can't be indexed twice. Please check that inclusion/exclusion patterns produce disjoint sets for main and test files

ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.

为了解决此问题,我按照这里给出的答案,在sonar-project.properties文件中在sonar.swift.excludedPathsFromCoverage行下添加以下两行:

sonar.test.inclusions=**/*Test*/**

sonar.exclusions=**/*Test*/**

之后,我使用-notailor参数(运行脚本并跳过Tailor)再次尝试:

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

为了节省时间,因为裁缝需要时间。

  1. 启动脚本后......突然出现了一个新错误......但这是已知的问题:

错误:Caused by: 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插件中,然后再次尝试。

......经过无数次尝试之后,这一次我终于看到了光明。

希望这个答案能够帮助您,如果您有任何问题,请不要犹豫。祝您好运并玩得开心:)

附注:这里提供一些运行脚本以及参数的选项:

./run-sonar-swift.sh -noswiftlint -v(使用verbose选项运行脚本并跳过SwiftLint)

./run-sonar-swift.sh -notailor -v(使用verbose选项运行脚本并跳过Tailor)

./run-sonar-swift.sh -nounittests -v(如果您的项目没有配置为要测试的方案,请使用此参数启动)

如果您想了解更多信息,请在run-sonar-swift.sh脚本中查找,并检查125## COMMAND LINE OPTIONS附近的内容。

附注2:我还在Sonar-swift GitHub上打开了一个问题,如果有帮助的话:https://github.com/Backelite/sonar-swift/issues/138


似乎错误是由于配置文件引起的。当我添加了我的配置文件并再次尝试时,问题得到了解决。你遇到了完全相同的错误吗?你具体做了什么? - Pooja M. Bohora

0

你做了哪些更改? - karthikeyan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接