作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最初使用了 Mochaawesome 报告,但无法与 AWS 集成。事实证明,我需要 JUnit XML 报告器才能与代码构建集成。
我已经创建了 Junit XML 报告,但我不知道如何将它们合并到一个 xml 文件中,以便它可以在 AWS 中使用。
已创建 XML 文件(我一直在尝试合并它们)
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/
我是一名优秀的程序员,十分优秀!