删除不再使用的bootstrap.md文件,更新promptx.js、MCPStreamableHttpCommand.js等文件以使用logger进行日志记录,重构资源管理和发现逻辑,确保代码一致性和可维护性。
This commit is contained in:
162
scripts/quick-test.js
Executable file
162
scripts/quick-test.js
Executable file
@ -0,0 +1,162 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
/**
|
||||
* 快速测试脚本
|
||||
* 用于验证全局单例ResourceManager优化效果
|
||||
*
|
||||
* 使用方法:
|
||||
* node scripts/quick-test.js [role-name]
|
||||
*
|
||||
* 示例:
|
||||
* node scripts/quick-test.js frontend-dev
|
||||
* node scripts/quick-test.js backend-dev
|
||||
*/
|
||||
|
||||
const { execSync } = require('child_process')
|
||||
const path = require('path')
|
||||
|
||||
// 预定义的测试角色配置
|
||||
const TEST_ROLES = {
|
||||
'frontend-dev': {
|
||||
title: '前端开发工程师',
|
||||
domain: '前端开发'
|
||||
},
|
||||
'backend-dev': {
|
||||
title: '后端开发工程师',
|
||||
domain: '后端开发'
|
||||
},
|
||||
'ui-designer': {
|
||||
title: 'UI设计师',
|
||||
domain: '用户界面设计'
|
||||
},
|
||||
'product-manager': {
|
||||
title: '产品经理',
|
||||
domain: '产品设计'
|
||||
},
|
||||
'data-analyst': {
|
||||
title: '数据分析师',
|
||||
domain: '数据分析'
|
||||
},
|
||||
'devops-engineer': {
|
||||
title: 'DevOps工程师',
|
||||
domain: 'DevOps运维'
|
||||
}
|
||||
}
|
||||
|
||||
function getRandomRole() {
|
||||
const roles = Object.keys(TEST_ROLES)
|
||||
return roles[Math.floor(Math.random() * roles.length)]
|
||||
}
|
||||
|
||||
function runCommand(command, description) {
|
||||
console.log(`\n🔄 ${description}...`)
|
||||
console.log(`💻 执行命令: ${command}`)
|
||||
|
||||
try {
|
||||
const output = execSync(command, {
|
||||
encoding: 'utf8',
|
||||
cwd: process.cwd(),
|
||||
stdio: 'pipe'
|
||||
})
|
||||
console.log(`✅ 成功完成`)
|
||||
if (output.trim()) {
|
||||
console.log(`📄 输出:\n${output}`)
|
||||
}
|
||||
return true
|
||||
} catch (error) {
|
||||
console.log(`❌ 执行失败: ${error.message}`)
|
||||
if (error.stdout) {
|
||||
console.log(`📄 标准输出:\n${error.stdout}`)
|
||||
}
|
||||
if (error.stderr) {
|
||||
console.log(`📄 错误输出:\n${error.stderr}`)
|
||||
}
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
async function main() {
|
||||
const args = process.argv.slice(2)
|
||||
let roleId = args[0]
|
||||
|
||||
// 如果没有指定角色,随机选择一个
|
||||
if (!roleId) {
|
||||
roleId = getRandomRole()
|
||||
console.log(`🎲 随机选择测试角色: ${roleId}`)
|
||||
}
|
||||
|
||||
// 检查角色是否在预定义列表中
|
||||
if (!TEST_ROLES[roleId]) {
|
||||
console.log(`❌ 未知角色: ${roleId}`)
|
||||
console.log(`📋 可用角色: ${Object.keys(TEST_ROLES).join(', ')}`)
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
const config = TEST_ROLES[roleId]
|
||||
console.log(`\n🚀 开始快速测试流程`)
|
||||
console.log(`📋 测试角色: ${roleId} (${config.title})`)
|
||||
console.log(`🎯 专业领域: ${config.domain}`)
|
||||
|
||||
// 步骤1: 生成测试角色
|
||||
console.log(`\n=== 步骤 1: 生成测试角色 ===`)
|
||||
const generateSuccess = runCommand(
|
||||
`node scripts/generate-test-role.js ${roleId} "${config.title}" "${config.domain}"`,
|
||||
`生成角色 ${roleId}`
|
||||
)
|
||||
|
||||
if (!generateSuccess) {
|
||||
console.log(`❌ 角色生成失败,终止测试`)
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
// 步骤2: 刷新资源注册表
|
||||
console.log(`\n=== 步骤 2: 刷新资源注册表 ===`)
|
||||
const initSuccess = runCommand(
|
||||
`node src/bin/promptx.js init`,
|
||||
`刷新资源注册表`
|
||||
)
|
||||
|
||||
if (!initSuccess) {
|
||||
console.log(`❌ 资源注册表刷新失败,终止测试`)
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
// 步骤3: 激活角色测试
|
||||
console.log(`\n=== 步骤 3: 激活角色测试 ===`)
|
||||
const actionSuccess = runCommand(
|
||||
`node src/bin/promptx.js action ${roleId}`,
|
||||
`激活角色 ${roleId}`
|
||||
)
|
||||
|
||||
if (!actionSuccess) {
|
||||
console.log(`❌ 角色激活失败`)
|
||||
}
|
||||
|
||||
// 测试总结
|
||||
console.log(`\n=== 测试总结 ===`)
|
||||
console.log(`🎯 测试角色: ${roleId} (${config.title})`)
|
||||
console.log(`📊 测试结果:`)
|
||||
console.log(` ✅ 角色生成: ${generateSuccess ? '成功' : '失败'}`)
|
||||
console.log(` ✅ 资源注册: ${initSuccess ? '成功' : '失败'}`)
|
||||
console.log(` ✅ 角色激活: ${actionSuccess ? '成功' : '失败'}`)
|
||||
|
||||
if (generateSuccess && initSuccess && actionSuccess) {
|
||||
console.log(`\n🎉 全部测试通过!ResourceManager优化生效`)
|
||||
console.log(`💡 现在可以在MCP环境中测试角色激活,无需重启服务器`)
|
||||
} else {
|
||||
console.log(`\n⚠️ 部分测试失败,请检查错误信息`)
|
||||
}
|
||||
|
||||
console.log(`\n📍 后续操作建议:`)
|
||||
console.log(` 1. 在MCP环境中测试: mcp_promptx-dev_promptx_action ${roleId}`)
|
||||
console.log(` 2. 验证项目级资源引用是否正常解析`)
|
||||
console.log(` 3. 测试其他角色的创建和激活`)
|
||||
}
|
||||
|
||||
// 运行脚本
|
||||
if (require.main === module) {
|
||||
main().catch(error => {
|
||||
console.error('❌ 脚本执行出错:', error.message)
|
||||
process.exit(1)
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user