首页 > 解决方案 > Azure DevOps Pipelines - 发布测试结果

问题描述

我已经按照本文中发布单元测试中的所有步骤进行操作,但我有一个问题是

##[警告]没有找到匹配**/testresults/unit-test-result.xml的测试结果文件。

我该如何解决?我认为管道中 JUnit XML 测试结果的路径与管道中的路径之间的差异karma.conf.js是问题所在。

我在 devops 中发布测试结果

在此处输入图像描述

我的karma.conf.js

// Karma configuration file, see link for more information
// https://karma-runner.github.io/1.0/config/configuration-file.html

const path = require('path');

module.exports = function (config) {
  config.set({
    basePath: '.',
    frameworks: ['jasmine', '@angular-devkit/build-angular'],
    plugins: [
      require('karma-jasmine'),
      require('karma-chrome-launcher'),
      // require('karma-junit-reporter'),
      require('karma-coverage-istanbul-reporter'),
      require('@angular-devkit/build-angular/plugins/karma'),
      require('karma-junit-reporter'),
    ],
    client: {
      clearContext: false, // leave Jasmine Spec Runner output visible in browser
      captureConsole: Boolean(process.env.KARMA_ENABLE_CONSOLE),
    },
    // junitReporter: {
    //   outputDir: path.join(__dirname, './reports/junit/'),
    //   outputFile: 'TESTS-xunit.xml',
    //   useBrowserName: false,
    //   suite: '', // Will become the package name attribute in xml testsuite element
    // },
    junitReporter: {
      outputDir: 'testresults/junit',
      outputFile: 'unit-test-result.xml',
      useBrowserName: false,
    },
    coverageIstanbulReporter: {
      reports: ['html', 'lcovonly', 'text-summary'],
      dir: path.join(__dirname, './reports/coverage'),
      fixWebpackSourcePaths: true,
    },
    // reporters: ['progress', 'junit'],
    
    reporters: ['progress', 'kjhtml', 'junit'],
    port: 9876,
    colors: true,
    // Level of logging, can be: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['ChromeHeadless'],
    singleRun: false,
    restartOnFileChange: true,
  });
};

标签: angularazure-devopsazure-pipelinesdevops

解决方案


测试结果文件路径不太正确。

您的业​​力配置将在以下位置生成结果文件

testresults/junit/unit-test-result.xml

但是您的搜索路径 ,**/testresults/unit-test-result.xml将不匹配,因为它不包括 junit 文件夹。

例如,如果您将搜索路径更改**/testresults/junit/unit-test-result.xml为 ,那应该可以。


推荐阅读