当 VSTest 是 运行 Azure 管道时无法解析结果文件

Failed to parse result files when VSTest is run Azure pipelines

我已将以下步骤添加到 运行 用于 React UI 的 Azure 管道中的单元测试 UI。

添加了一个文件,文件 name:jestTrxProcessor.js。内容:

var builder = require("jest-trx-results-processor/dist/testResultsProcessor"); 
var builder = require("jest-trx-results-processor");
 
var processor = builder({
  outputFile: "jestTestresults.trx", 
});
 
module.exports = processor;

  1. 在package.json中我输入了以下代码:
"scripts": {
....
"test": "jest"
},
devdependencies{
 ...
 "jest": "^23.4.1",
  "jest-trx-results-processor": "0.0.7",
  "jsdom": "^11.12.0"
},
"jest": {
       "testResultsProcessor": "./__tests__/jestTrxProcessor.js",
    "reporters": [
"default",
[
  "jest-trx-results-processor",
  {
    "outputFile": "./__tests__/jestTestresults.trx",
  
  }
]]},

3.In 我添加了以下脚本的 yaml 文件:

- script: |
    npm install
    npm install jest-trx-results-processor --save-dev
    yarn add --dev jest-trx-results-processor
    npm run build
 
   # npm run test
  displayName: 'npm install and build'
  
- task: PublishTestResults@2
  inputs:
    testResultsFormat: 'VSTest'
    testResultsFiles: './__tests__/jestTestresults.trx'
    testRunTitle: 'FrontEnd Test'

我收到以下错误:

Failed to parse result files when VSTest is run Azure pipelines

根据报错信息:

Publish Test Results Failed to parse result files: System.Xml.XmlException: Data at the root level is invalid. Line 1, position 1

这意味着您试图解析的内容不是 XML 文档,或者生成的 trx 文件存在问题。

要解决此问题,请尝试更新 devdependencies jest jest-trx-results-processor:

  "devDependencies": {
    "jest": "^26.6.3",
    "jest-trx-results-processor": "~2.0.0"
  },

并尝试 select JUnitTestResultsFormat:

另外,Jest testResultsProcessor property is deprecated,测试报告请尽量使用jest-junit包:

请查看 了解更多详情。