前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Cypress web自动化26-mochawesome-merge合并json报告

Cypress web自动化26-mochawesome-merge合并json报告

作者头像
上海-悠悠
发布2020-06-04 10:46:06
1.2K0
发布2020-06-04 10:46:06
举报
文章被收录于专栏:从零开始学自动化测试

前言

生成的报告有多个 json 文件时,需使用 mochawesome-merge 合并 json 报告

环境准备

使用 npm 安装

$ npm install mochawesome-merge —save-dev

查看安装版本

代码语言:javascript
复制
D:\Cypress>npm list mochawesome-merge
D:\Cypress
`-- mochawesome-merge@4.0.3

示例

JavaScript API

代码语言:javascript
复制
const { merge } = require('mochawesome-merge')

// See Params section below
const options = {
  files: [
    './report/*.json',

    // you can specify more files or globs if necessary:
    './mochawesome-report/*.json',
  ],
}

merge(options).then(report => {
  console.log(report)
})

命令行

$ npx mochawesome-merge ./report/*.json > output.json

也可以合并多个文件夹下的json文件

$ npx mochawesome-merge ./report/.json ./mochawesome-report/.json > output.json

参数 files: 匹配路径,默认为 ["./mochawesome-report/mochawesome*.json"] .

v4版本改变

版本4有一个突破性的变化-它不再接受像reportDir或rootDir这样的参数。相反,它现在接受到源报表文件的文件路径或全局模式列表。 如果你要迁移到版本4,你可能需要相应地更改你的参数。

如果有一堆文件要合并到./mochawesome-report 目录下。那么你可能是这样使用 mochawesome-merge:

代码语言:javascript
复制
merge({
  reportDir: "mochawesome-report",
});

切换到版本4后,需要将reportDir param重命名为files,并将该值更改为指向文件而不是目录:

代码语言:javascript
复制
merge({
-  reportDir: "mochawesome-report",
+  files: ["./mochawesome-report/*.json"],
})

升级到版本4后,您只需删除—reportDir选项,而需要指定一个或多个全局模式,用空格分隔每个模式:

代码语言:javascript
复制
- npx mochawesome-merge --reportDir mochawesome-report > mochawesome.json
+ npx mochawesome-merge ./mochawesome-report/*.json > mochawesome.json

Cypress

创建这个库的主要动机是能够将 mochawesome 与 Cypress 一起使用。 从版本3.0.0版本以后,Cypress 分别运行每个用例,这导致生成多个 mochawesome 报告,mochawesome-merge 用于合并这些报告,然后为所有 Cypress 测试生成一个 HTML 报告。

首先配置 cypress.json, 这里可以不指定reportDir参数,报告默认放到 mochawesome-report 目录:

代码语言:javascript
复制
{
  // use mochawesome reporter as usually
  "reporter": "mochawesome",
  "reporterOptions": {
    // disable overwrite to generate many JSON reports
    "overwrite": false,
    // do not generate intermediate HTML reports
    "html": false,
    // generate intermediate JSON reports
    "json": true
  }
}

然后写一个 scripts/cypress.js 脚本结合 mochawesome-merge 执行你的用例:

代码语言:javascript
复制
const cypress = require('cypress')
const marge = require('mochawesome-report-generator')
const { merge } = require('mochawesome-merge')

cypress.run().then(
  () => {
    generateReport()
  },
  error => {
    generateReport()
    console.error(error)
    process.exit(1)
  }
)

function generateReport(options) {
  return merge(options).then(report => marge.create(report, options))
}

执行用例

在 package.json中 加一个scripts命令cypress:report

代码语言:javascript
复制
{
  “scripts”: {
    “cypress:open”: “cypress open”,
    “cypress:run”: “cypress run —browser chrome”,
    “cypress:report”: “node scripts/cypress.js”
}
}

这样通过 npm 就能执行了

npm run cypress:report

运行完成后在根目录下:mochawesome-report 生成报告

打开html查看报告内容

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 环境准备
  • 示例
  • v4版本改变
  • Cypress
  • 执行用例
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档