You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:在无浏览器环境下压缩Cypress报告文件夹并上传至Xray

Node.js 无浏览器环境压缩文件夹方案(适配JIRA Xray报告上传)

直接用archiver这个Node.js库就能解决,它专门用于服务器/无浏览器环境下生成zip、tar等压缩包,支持文件夹递归压缩,步骤如下:

1. 安装依赖

在项目目录执行:

npm install archiver --save-dev

2. 编写压缩脚本

在项目根目录新建compress-report.js,填入以下代码(根据你的实际报告文件夹路径调整):

const fs = require('fs');
const archiver = require('archiver');

// 配置路径:替换成你的cucumber-html报告文件夹路径,压缩包输出路径
const sourceDir = './cucumber-html-report'; // 你的报告文件夹
const outputPath = './cucumber-html-report.zip'; // 压缩后保存的文件,和报告同目录

// 创建输出流
const output = fs.createWriteStream(outputPath);
const archive = archiver('zip', {
  zlib: { level: 9 } // 压缩等级,9为最高压缩率
});

// 监听压缩完成事件
output.on('close', () => {
  console.log(`压缩完成,总大小:${archive.pointer()} bytes`);
  // 这里可直接调用你的JIRA上传接口,上传outputPath对应的文件
});

// 监听错误事件
archive.on('error', (err) => {
  throw err;
});

// 关联输出流,添加要压缩的文件夹,启动压缩
archive.pipe(output);
// false表示不保留外层文件夹名称,直接将文件夹内内容放入zip;若要保留结构,改成文件夹名如'cucumber-html-report'
archive.directory(sourceDir, false);
archive.finalize();

3. 运行脚本

在项目目录执行:

node compress-report.js

关键注意点

  • 确保sourceDir路径正确,建议用绝对路径避免相对路径问题
  • 如果需要在压缩包内保留原文件夹结构,把archive.directory(sourceDir, false)的第二个参数改为目标文件夹名称
  • 压缩完成的回调output.on('close')是调用上传接口的最佳时机,确保压缩文件已完全生成

内容的提问来源于stack exchange,提问作者Sheetal Akhud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 04:55:10