Angular 如何";在sonarqube中启用前端代码覆盖;对于一个有角度的项目

Angular 如何";在sonarqube中启用前端代码覆盖;对于一个有角度的项目,angular,sonarqube,angular-cli,bamboo,test-coverage,Angular,Sonarqube,Angular Cli,Bamboo,Test Coverage,这是我的dahsboard,来自与Sonarqube相关的竹子: 项目生成结果页面如下所示: 所以,我想让测试覆盖率以竹子的形式显示单元测试报告。 我提到我的angular项目有本地覆盖 你能帮我吗?你是将结果输出到某种文件中,还是试图直接从SonarQube获取结果 通常,通过添加测试解析器任务并将其指向受支持的测试输出文件,测试结果将以竹子的形式发布 Atlassian确实有一些很好的文章,因此您可能可以编写一个自定义解析器,通过他们的API直接从SonarQube报告。您是将结果输出到

这是我的dahsboard,来自与Sonarqube相关的竹子:

项目生成结果页面如下所示:

所以,我想让测试覆盖率以竹子的形式显示单元测试报告。 我提到我的angular项目有本地覆盖


你能帮我吗?

你是将结果输出到某种文件中,还是试图直接从SonarQube获取结果

通常,通过添加测试解析器任务并将其指向受支持的测试输出文件,测试结果将以竹子的形式发布


Atlassian确实有一些很好的文章,因此您可能可以编写一个自定义解析器,通过他们的API直接从SonarQube报告。

您是将结果输出到某种文件中,还是试图直接从SonarQube获取结果

通常,通过添加测试解析器任务并将其指向受支持的测试输出文件,测试结果将以竹子的形式发布


Atlassian确实有一些不错的文章,因此您可能可以编写一个自定义解析器,通过SonarQube的API直接从SonarQube报告。

您需要将结果转换为SonarQube可以解释的格式。假设您使用的是Jasmine/Karma,这将是一种LCOV格式

  • 修改生成脚本以包含以下行:

    ng测试——代码覆盖率

  • 这将在您的angular项目中创建一个coverage文件夹。但是,它将采用html格式。您还需要更改Karma runner,以便它生成一个lcov.info文件:

    // karma.conf.js // .... coverageIstanbulReporter: { dir: require('path').join(__dirname, '../coverage'), reports: ['lcovonly'], fixWebpackSourcePaths: true }, // .... //karma.conf.js // .... 报道者:{ dir:require('path').join('uuu dirname,../coverage'), 报告:['lcovonly'], FixWebPackageSourcePath:true }, // ....
  • 最后,使用以下行更新sonar-project.properties文件,以便SonarQube知道在哪里可以找到覆盖范围:

    sonar.typescript.lcov.reportPaths=coverage/lcov/lcov.info sonar.typescript.lcov.reportpath=coverage/lcov/lcov.info

  • 您需要将结果转换为SonarQube可以解释的格式。假设您使用的是Jasmine/Karma,这将是一种LCOV格式

  • 修改生成脚本以包含以下行:

    ng测试——代码覆盖率

  • 这将在您的angular项目中创建一个coverage文件夹。但是,它将采用html格式。您还需要更改Karma runner,以便它生成一个lcov.info文件:

    // karma.conf.js // .... coverageIstanbulReporter: { dir: require('path').join(__dirname, '../coverage'), reports: ['lcovonly'], fixWebpackSourcePaths: true }, // .... //karma.conf.js // .... 报道者:{ dir:require('path').join('uuu dirname,../coverage'), 报告:['lcovonly'], FixWebPackageSourcePath:true }, // ....
  • 最后,使用以下行更新sonar-project.properties文件,以便SonarQube知道在哪里可以找到覆盖范围:

    sonar.typescript.lcov.reportPaths=coverage/lcov/lcov.info sonar.typescript.lcov.reportpath=coverage/lcov/lcov.info

  • 我有一个html输出。在Bambol中,我想提供一些本地覆盖的统计数据或其他信息。您最好的选择是查看是否可以以JUnit格式(xml)输出结果,因为Bambol支持开箱即用的报告,并添加结果解析器。例如,jest和karma都有用于junit报告的插件。这将给你通过/失败的结果,关于最近失败的测试的统计数据,计时,等等。我已经在我的构建测试结果中集成了->我现在想要的是在这个页面上有这样的东西:但是这里是通过sonarqube自己的应用集成的,而不是在bambooI中有一个html输出。在Bambol中,我想提供一些本地覆盖的统计数据或其他信息。您最好的选择是查看是否可以以JUnit格式(xml)输出结果,因为Bambol支持开箱即用的报告,并添加结果解析器。例如,jest和karma都有用于junit报告的插件。这将给你通过/失败的结果,关于最近失败测试的统计,计时,等等。我已经在我的构建测试结果中集成了->现在我想要的是在这个页面上有这样的东西:但是这里是通过sonarqube自己的应用集成的,而不是在bambooI get
    WARN:无法解析中的10个文件路径[/mnt/ramdisk/agents/agent12/work/dbe8ad65d6f5738a/coverage/lcov.info],第一个未解析路径:src/app/app.component.html
    -不确定这里出了什么问题
    警告:无法解析[/mnt/ramdisk/agents/agent12/work/dbe8ad65d6f5738a/coverage/lcov.info]中的10个文件路径,第一个未解析路径:src/app/app.component.html
    -不确定这里出了什么问题