代码之家  ›  专栏  ›  技术社区  ›  pkaramol

Sonarkube:行超出范围,因为文件在与主文件合并后收缩

  •  0
  • pkaramol  · 技术社区  · 7 年前

    有一个 fileA master (假设它由1000行组成)

    我们开始了 feature_branch ,在哪里 菲里亚 长度为1050行。

    在我们的CI管道上,我们正在运行 coverage (这是一个python项目)它产生 coverage.xml ,用作SQ的COV输入。

    我们的SQ预览阶段如下:

        - git config --global user.name "SonarQube"
        - git config --global user.email "sonarqube@somedomain.com"
        - git checkout origin/master
        - git merge $CI_BUILD_REF --no-commit --no-ff
        - sonar-scanner -Dsonar.analysis.mode=preview -Dsonar.gitlab.project_id=$CI_PROJECT_PATH -Dsonar.login=$SONARQUBE_TOKEN -Dsonar.gitlab.commit_sha=$CI_COMMIT_SHA -Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME
      except:
       - master@mainprojectnamespace
    

    问题如下:

    合并, 菲里亚 最后(又)有1000行

    然而 , 新闻报道 运行 以前 合并(在上一个作业中),使其包含第>1000行的结果(即 菲里亚 合并后的长度)

    这导致(我相信)以下错误:

    ERROR: Error during SonarQube Scanner execution
    java.lang.IllegalStateException: Line 1040 is out of range in the file path/to/fileA.py (lines: 1000)
    

    我们该怎么办?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Alban A. - SonarSource Team    7 年前

    与所有导入覆盖率报告的代码分析器一样,Sonarpython要求所分析的源代码与用于生成覆盖率报告的源代码完全相同。 首先,在运行声纳扫描仪之前,您应该挑战合并分支的需要。 而且,如果您真的需要在与master合并的分支上运行声纳扫描仪,那么您还需要在与master合并的同一分支上运行覆盖率分析。