【问题标题】:sonarqube mixed obj-c swift project, how scan is done for code coveragesonarqube 混合 obj-c swift 项目,如何扫描代码覆盖率
【发布时间】:2019-05-21 15:31:01
【问题描述】:

根据文档,swift 和 Obj-C 声纳扫描仪都需要代码覆盖率数据并且以不同的方式(build-wrapper 与 xccov)。但这让我想到,代码覆盖范围是针对 xcode 中的整个目标/项目,而不仅仅是特定语言的文件。因此,对于混合的 Obj-C swift 项目,SonarQube 是否需要两次相同的整个项目 xcode 生成的覆盖数据(每个扫描仪一次)?如果不是,它如何关联声纳项目中特定语言的代码覆盖率,或者它根本不关心?

之所以问这个问题,是因为这两个扫描仪的文档再次列出了不同的代码覆盖率说明,这让我很惊讶,这让用户怀疑每个扫描仪是否不会像使用 xcode 那样将数据混合在一起和一个混合的 obj-c swift 项目(即它的 same 数据)

【问题讨论】:

    标签: ios objective-c swift xcode sonarqube


    【解决方案1】:

    即使我面临同样的扫描。我们目前正在做的是我们设置 build-wrapper 实用程序,如 https://docs.sonarqube.org/latest/analysis/languages/cfamily/ 所示。 所以,最初它工作了一个月左右。后来,我们开始收到以下错误:

    ================================================ ====================================== 02:36:25.658 信息:-------------------------------------------- ----------------------------------------- 02:36:25.658 错误:SonarQube 扫描仪执行期间出错 java.lang.IllegalStateException:找到了“build-wrapper-dump.json”文件,但分析了 0 个 C/C++/Objective-C 文件。请确保: * 您正在使用最新版本的 build-wrapper 和 SonarCFamily 分析器 * 您使用正确的配置正确调用扫描仪 * 支持您的编译器 * 你正在正确地包装你的构建 * 你正在包装一个完整/干净的构建 * 您提供了正确的构建包装器输出目录的路径

    ================================================ ======================================

    所以,我们决定在我们的声纳服务器(企业版)上安装一个 backelite 插件/jar(处理 Swift 和 Objective-C 混合的声纳覆盖率报告),但是,它导致了以下错误:

    error message screenshot

    所以,基本上你可以设置 uo build wrapper 实用程序并尝试执行声纳扫描。确保安装了 sonar-scanner 并且您正在将相关开关传递给 sonar-scanner 命令。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-05
    • 1970-01-01
    • 2021-11-17
    • 2020-12-29
    • 2022-08-16
    • 2018-01-11
    • 2017-03-06
    • 2021-06-04
    相关资源
    最近更新 更多