代码覆盖率不会生成有关 azure 管道的报告

时间:2021-06-02 16:06:40

标签: azure-devops azure-pipelines

我的目标:

是在 azure devops 的管道中成功发布我的覆盖率报告。 将其发送到 SonarCloud

我的成功

本地在我的电脑上 我设法以 html 格式和 xml

格式生成覆盖率报告

1.我的管道上的脚本任务:

wp.data.select( 'core/editor' ).getEditedPostAttribute('meta')['_myprefix_text_metafield'];

2. kama-ci.config.js 文件:

      - script: |
          npx ng test --code-coverage --karma-config src/karma-ci.conf.js
        condition: succeededOrFailed()
        displayName: Generate unit tests report

3.结果错误:

但问题是,报告生成总是在管道中启动并失败。 这是他的结果,尽管我给它设定了总是成功的条件。

module.exports = function (config) {
  config.set({
    frameworks: ['jasmine', '@angular-devkit/build-angular'],
    plugins: [
      require('karma-jasmine'),
      require('karma-chrome-launcher'),
      require('karma-junit-reporter'),
      require('karma-coverage'),
      require('karma-coverage-istanbul-reporter'),
      require('@angular-devkit/build-angular/plugins/karma')
    ],
    junitReporter: {
      outputDir: 'TestResults/junit',
      outputFile: 'unittest-results.xml',
      useBrowserName: false
    },
    coverageReporter: {
      type : 'cobertura',
      dir : 'TestResults',
      subdir: 'coverage',
      file: 'code-coverage.xml'
    },
    reporters: ['progress', 'junit', 'coverage'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: false,
    customLaunchers: {
      ChromeHeadless: {
        base: 'Chrome',
        flags: [
          '--headless',
          '--disable-gpu',
          '--no-sandbox',
          '--remote-debugging-port=9222',
        ]
      }
    },
    browsers: ['ChromeHeadless'],
    singleRun: true
  });
};

1 个答案:

答案 0 :(得分:0)

1.我的项目是:

带有 Node.Js 和 npm 包的前端项目

 Angular CLI: 8.3.23 
 Node: 12.18.3  
 OS: win32 x64
 Angular: 8.2.14

1.我向你展示我的管道

trigger:
  tags:
    include:
      - v*
variables:
  - name: ARTIFACTS_FEED_NAME
    value: MyFeed
stages:
  - stage: Build
    jobs:
      - job: Build
        steps:
          - task: NodeTool@0
            inputs:
              versionSpec: 10.15.x
            displayName: Install and use 10.x Node.js version
          - task: Npm@1
            inputs:
              command: install
              customRegistry: useFeed
              customFeed: $(ARTIFACTS_FEED_NAME)
            displayName: Packages restore

          - script: |
              ls 
            displayName: Check source output
            
          - script: |
              npx ng test --code-coverage --karma-config src/karma-ci.conf.js
            condition: succeededOrFailed()
            displayName: Generate unit tests report

          - script: |
              ls src
            displayName: Check unit tests output

          - task: PublishTestResults@2
            condition: succeededOrFailed()
            inputs:
              testResultsFormat: 'JUnit'
              testResultsFiles: '**/TestResults/junit/unittest-results.xml'
            displayName: Publish unit test results

          - task: PublishCodeCoverageResults@1
            displayName: Publish code coverage report
            condition: succeededOrFailed()
            inputs:
              codeCoverageTool: Cobertura
              # summaryFileLocation: '$(Build.SourcesDirectory)/coverage/**/TestResults/code-coverage.xml'
              summaryFileLocation: '**/src/TestResults/coverage/code-coverage.xml'
              failIfCoverageEmpty: true