- 在editStorageForm中初始化oss_storage_quota_value和oss_quota_unit - 删除重复的旧配额说明块,保留新的当前配额设置显示 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
107 lines
2.5 KiB
JavaScript
107 lines
2.5 KiB
JavaScript
/**
|
|
* 运行所有边界条件和异常处理测试
|
|
*/
|
|
|
|
const { spawn } = require('child_process');
|
|
const path = require('path');
|
|
|
|
const testFiles = [
|
|
'boundary-tests.js',
|
|
'network-concurrent-tests.js',
|
|
'state-consistency-tests.js'
|
|
];
|
|
|
|
const results = {
|
|
total: { passed: 0, failed: 0 },
|
|
files: []
|
|
};
|
|
|
|
function runTest(file) {
|
|
return new Promise((resolve) => {
|
|
const testPath = path.join(__dirname, file);
|
|
const child = spawn('node', [testPath], {
|
|
stdio: ['pipe', 'pipe', 'pipe']
|
|
});
|
|
|
|
let output = '';
|
|
let errorOutput = '';
|
|
|
|
child.stdout.on('data', (data) => {
|
|
output += data.toString();
|
|
process.stdout.write(data);
|
|
});
|
|
|
|
child.stderr.on('data', (data) => {
|
|
errorOutput += data.toString();
|
|
process.stderr.write(data);
|
|
});
|
|
|
|
child.on('close', (code) => {
|
|
// 解析测试结果
|
|
const passMatch = output.match(/通过:\s*(\d+)/);
|
|
const failMatch = output.match(/失败:\s*(\d+)/);
|
|
|
|
const passed = passMatch ? parseInt(passMatch[1]) : 0;
|
|
const failed = failMatch ? parseInt(failMatch[1]) : 0;
|
|
|
|
results.files.push({
|
|
file,
|
|
passed,
|
|
failed,
|
|
exitCode: code
|
|
});
|
|
|
|
results.total.passed += passed;
|
|
results.total.failed += failed;
|
|
|
|
resolve(code);
|
|
});
|
|
});
|
|
}
|
|
|
|
async function runAllTests() {
|
|
console.log('='.repeat(60));
|
|
console.log('运行所有边界条件和异常处理测试');
|
|
console.log('='.repeat(60));
|
|
console.log('');
|
|
|
|
for (const file of testFiles) {
|
|
console.log('='.repeat(60));
|
|
console.log(`测试文件: ${file}`);
|
|
console.log('='.repeat(60));
|
|
|
|
await runTest(file);
|
|
|
|
console.log('');
|
|
}
|
|
|
|
// 输出最终汇总
|
|
console.log('='.repeat(60));
|
|
console.log('最终汇总');
|
|
console.log('='.repeat(60));
|
|
console.log('');
|
|
|
|
console.log('各测试文件结果:');
|
|
for (const fileResult of results.files) {
|
|
const status = fileResult.failed === 0 ? 'PASS' : 'FAIL';
|
|
console.log(` [${status}] ${fileResult.file}: 通过 ${fileResult.passed}, 失败 ${fileResult.failed}`);
|
|
}
|
|
|
|
console.log('');
|
|
console.log(`总计: 通过 ${results.total.passed}, 失败 ${results.total.failed}`);
|
|
console.log('');
|
|
|
|
if (results.total.failed > 0) {
|
|
console.log('存在失败的测试,请检查输出以了解详情。');
|
|
process.exit(1);
|
|
} else {
|
|
console.log('所有测试通过!');
|
|
process.exit(0);
|
|
}
|
|
}
|
|
|
|
runAllTests().catch(err => {
|
|
console.error('运行测试时发生错误:', err);
|
|
process.exit(1);
|
|
});
|