gpt4 book ai didi

amazon-web-services - 如何在 Cypress 中合并 Junit XML 报告以与 AWS CB 集成

转载 作者:行者123 更新时间:2023-12-05 01:09:39 24 4
gpt4 key购买 nike

我最初使用了 Mochaawesome 报告,但无法与 AWS 集成。事实证明,我需要 JUnit XML 报告器才能与代码构建集成。

我已经创建了 Junit XML 报告,但我不知道如何将它们合并到一个 xml 文件中,以便它可以在 AWS 中使用。

已创建 XML 文件(我一直在尝试合并它们)

enter image description here

Cypress.json 文件

"reporter": "cypress-multi-reporters",
"reporterOptions": {
"reporterEnabled": "spec, mocha-junit-reporter",
"mochaJunitReporterReporterOptions": {
"mochaFile": "cypress/results/results-[hash].xml"
}

index.js 文件

"scripts": {
"delete:reports": "rm cypress/results/* || true",
"prereport": "delete:reports",
"report": "cypress run --reporter cypress-multi-reporters --reporter-options mochaFile=cypress/results/results-[hash].xml"
},
"dependencies": {
"cypress-multi-reporters": "^1.4.0",
"junit-report-merger": "^0.0.6",
"mocha": "^8.2.1",
"mocha-junit-reporter": "^2.0.0",
}

命令行(但它不需要密码,所以我的测试都失败了)

$ yarn report --env password=<password>

最佳答案

我专门为此目的创建了一个包。它被称为 junit-report-merger .

您应该编写一个 Nodejs 脚本,该脚本将使用从该包中导出的函数:

merge.js

const path = require('path')
const {mergeFiles} = require('junit-report-merger')

const globby = require('globby')
const inputFiles = await globby(['results/report-*.xml'])

const outputFile = path.join(__dirname, 'results', 'combined-report.xml')

mergeFiles(
outputFile,
inputFiles,
err => {
if (err) {
console.error(err)
}
else {
console.log('successfully merged')
}
}
)

一旦脚本准备就绪,您应该在测试后运行它。在您的情况下,它将是这样的:

"scripts": {
"report": "cypress run --reporter cypress-multi-reporters --reporter-options mochaFile=cypress/results/results-[hash].xml",
"postreport": "node merge.js"
}

更新

刚刚发布了 junit-report-merger 的 1.0.0 版本,它具有 glob 支持,允许 async/await 并提供 CLI .

上面的代码仍然可以工作,但是使用那个版本,上面的 merge.js 文件可以用更短的方式编写:

const path = require('path')
const {mergeFiles} = require('junit-report-merger')

const inputPattern = ['results/report-*.xml']

const outputFile = path.join(__dirname, 'results', 'combined-report.xml')

await mergeFiles(outputFile, inputPattern)
console.log('successfully merged')

但在 1.0.0 版本中,您可以完全避免创建 merge.js 并改用 CLI。
像这样:

    "scripts": {
"report": "cypress run --reporter cypress-multi-reporters --reporter-options mochaFile=cypress/results/results-[hash].xml",
"postreport": "jrm ./results/combined-report.xml \"./cypress/results/results-*.xml\""
}

关于amazon-web-services - 如何在 Cypress 中合并 Junit XML 报告以与 AWS CB 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64995227/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com