import * as fs from 'fs';
import * as path from 'path';
import * as playwright from 'playwright';
import * as exceljs from 'exceljs';
// 创建一个Excel工作簿
const workbook = new exceljs.Workbook();
const worksheet = workbook.addWorksheet('测试报告');
// 定义测试结果的列标题
worksheet.columns = [
{ header: '测试文件', key: 'testFile', width: 30 },
{ header: '测试结果', key: 'testResult', width: 15 },
];
// 获取测试文件夹路径
const testFolderPath = path.join(__dirname, 'tests');
// 读取测试文件夹中的所有文件
const testFiles = fs.readdirSync(testFolderPath);
// 创建一个异步函数,用于执行测试并记录结果到Excel文件
async function runTestsAndRecordResults() {
// 遍历测试文件
for (const testFile of testFiles) {
const testFilePath = path.join(testFolderPath, testFile);
// 判断文件是否为JavaScript或TypeScript文件
if (testFilePath.endsWith('.js') || testFilePath.endsWith('.ts')) {
// 动态导入测试文件
const testModule = await import(testFilePath);
// 查找并执行测试函数
const testFunctionNames = Object.getOwnPropertyNames(testModule);
for (const functionName of testFunctionNames) {
if (typeof testModule[functionName] === 'function') {
// 执行测试函数
const testResult = await testModule[functionName]();
// 记录结果到Excel文件
worksheet.addRow({ testFile, testResult });
}
}
}
} // 将Excel文件保存到磁盘
await workbook.xlsx.writeFile('测试报告.xlsx');
}
// 运行测试并记录结果
runTestsAndRecordResults()
.then(() => console.log('测试执行完毕,结果已记录到文件。'))
.catch((error) => console