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

O. *_*ane 4 ios sonar-runner sonarqube swift sonarlint

我正在尝试快速运行声纳。我已经有了带有该插件的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,名称= iPhone 6,OS = 11.3

覆盖范围排除的路径为:。测试。

创建目录声纳报告/

运行测试+ xcodebuild干净的构建测试-workspace Streamus.xcworkspace -scheme'Streamus Alpha'-配置调试-enableCodeCoverage是-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在目标{SimDevice:iPhone 6(672DE879-E48B-45DA-BFD9-D0412F51A706,iOS 11.3,引导)上使用Xcode 9E145的-12 10:34:14.031}(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,已启动)}(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]

Error Domain = IDETestOperationsObserverErrorDomain代码= 14“测试操作已取消。如果您认为此错误代表错误,请在/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”

UserInfo = {NSLocalizedDescription =测试操作已取消。如果您认为此错误代表错误,请在/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:30.016 xcodebuild [32149:769805]错误Domain = IDETestOperationsObserverErrorDomain Code = 14“测试操作已取消。如果您认为此错误代表错误,请在/ 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-09 “ UserInfo = {NSLocalizedDescription =测试操作已取消。如果您认为此错误代表错误,请在/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}

测试失败:链接器命令失败,退出代码为1(使用-v查看调用)**测试失败**

以下构建命令失败:

Ld /Users/oboujaouane/Library/Developer/Xcode/DerivedData/Streamus-gwtdwpbaxrfgafdtejzjtpxyhhhq/Build/Intermediates.noindex/Streamus.build/Alpha-iphonesimulator/StreamusTests.build/Objects-normal/x86_64_64/StreamusTests

Ld /Users/oboujaouane/Library/Developer/Xcode/DerivedData/Streamus-gwtdwpbaxrfgafdtejzjtpxyhhhq/Build/Intermediates.noindex/Streamus.build/Alpha-iphonesimulator/StreamusTests.build/Objects-normal/i386/StreamusTests正常

(2次失败)

  • returnValue = 65

  • 设置+ x

错误-命令'xcodebuild clean build test -workspace Streamus.xcworkspace -scheme Streamus Alpha -configuration Debug -enableCodeCoverage是-destination platform = iOS Simulator,name = iPhone 6,OS = 11.3 -destination-timeout 60'失败,错误代码:65

预先谢谢你,

O. *_*ane 6

  1. 似乎错误是由于配置文件引起的。当我添加我的配置文件并再次尝试时,问题已解决。

  2. 然后,我对MessageKit遇到了另一个问题:“分段错误:11”是CocoaPods Podfile配置问题。因此,我必须通过在Xcode项目导航器中单击Pod,然后在Pod的目标中选择MessageKit,然后选择Builds设置选项卡,然后在搜索器中点击“ compilation mode”,然后将“ Single”切换为“单一”,从而将Debug的编译模式从“单个文件”切换为“整个模块”。文件”到“整个模块”,然后重新运行脚本run-sonar-swift.sh

这里如何切换到整个模块而不是单个文件

?? 每次进行Pod的安装/更新或可能更改Pod的操作时,都必须将Pod的Debug的编译模式从“单个文件”切换为“ Whole Module”,这会在启动run-sonar.swift时出现错误。 -v表示详细。

  1. 在那之后,我的问题还没有结束!实际上,我有一个最后的问题,它是SwipeCellKit pod的错误:“没有此类模块SwipeCellKit”。要解决此问题,请遵循此处给出的说明/sf/answers/2641257391/

  2. 然后我再次尝试,脚本的其余部分开始运行(SwiftLint,Tailor和Lizard),我认为这次终于可以了,但是错误再次出现在脚本末尾有关Lizard的新错误消息是:

错误:SonarQube扫描仪执行期间出错

错误:文件MyprojectName / Domains / Repositories / Local / cacheManager.swift不能被索引两次。请检查包含/排除模式是否产生主文件和测试文件的不相交集

错误:使用-X开关重新运行SonarQube Scanner以启用完整的调试日志记录。

要解决此包含/排除问题,我遵循了此处给出的答案:https : //stackoverflow.com/a/40150551/6188918,将这些添加到sonar.swift.excludedPathsFromCoverage行下面的sonar-project.properties文件中:

sonar.test.inclusions = ** / *测试* / **

sonar.exclusions = ** / *测试* / **

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

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

只是为了节省一点时间,因为裁缝需要时间

  1. 在启动脚本之后...弹出一个新错误...但这是一个已知问题:

错误:由以下原因引起:org.sonar.api.measures.PersistenceMode

这个问题在这里解释https://github.com/Backelite/sonar-swift/issues/118

因此,我在此https://github.com/Hugal31/sonar-swift/releases/releases/tag/0.4-下载了这个.jar文件“ backelite-sonar-swift-plugin-0.4-sonar-7-quick-fix.jar”。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