103 lines
5.8 KiB
HTML
103 lines
5.8 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>期中期末功能测试</title>
|
|
<style>
|
|
body { font-family: Arial, sans-serif; margin: 20px; }
|
|
.test-result { margin: 10px 0; padding: 10px; border: 1px solid #ccc; }
|
|
.success { background-color: #d4edda; }
|
|
.error { background-color: #f8d7da; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<h1>期中期末功能测试</h1>
|
|
|
|
<h2>测试结果:</h2>
|
|
<div id="testResults"></div>
|
|
|
|
<script>
|
|
async function runTests() {
|
|
const resultsDiv = document.getElementById('testResults');
|
|
resultsDiv.innerHTML = '<p>正在测试...</p>';
|
|
|
|
try {
|
|
// 测试1: 获取筛选条件
|
|
console.log('测试1: 获取筛选条件');
|
|
const filtersResponse = await fetch('/api/filters');
|
|
const filtersResult = await filtersResponse.json();
|
|
|
|
if (filtersResult.success) {
|
|
resultsDiv.innerHTML += '<div class="test-result success">✓ 筛选条件API正常</div>';
|
|
} else {
|
|
resultsDiv.innerHTML += '<div class="test-result error">✗ 筛选条件API失败</div>';
|
|
}
|
|
|
|
// 测试2: 期中考试筛选
|
|
console.log('测试2: 期中考试筛选');
|
|
const midtermResponse = await fetch('/api/questions-by-filters?subject=科学&grade=一年级上册&unit=期中');
|
|
const midtermResult = await midtermResponse.json();
|
|
|
|
if (midtermResult.success) {
|
|
const midtermTotal = Object.values(midtermResult.data).reduce((sum, questions) => sum + questions.length, 0);
|
|
resultsDiv.innerHTML += `<div class="test-result success">✓ 期中考试筛选正常: ${midtermTotal}题</div>`;
|
|
resultsDiv.innerHTML += `<div class="test-result"> - 基础题: ${midtermResult.data['基础题'].length}题</div>`;
|
|
resultsDiv.innerHTML += `<div class="test-result"> - 进阶题: ${midtermResult.data['进阶题'].length}题</div>`;
|
|
resultsDiv.innerHTML += `<div class="test-result"> - 竞赛题: ${midtermResult.data['竞赛题'].length}题</div>`;
|
|
} else {
|
|
resultsDiv.innerHTML += '<div class="test-result error">✗ 期中考试筛选失败</div>';
|
|
}
|
|
|
|
// 测试3: 期末考试筛选
|
|
console.log('测试3: 期末考试筛选');
|
|
const finalResponse = await fetch('/api/questions-by-filters?subject=科学&grade=一年级上册&unit=期末');
|
|
const finalResult = await finalResponse.json();
|
|
|
|
if (finalResult.success) {
|
|
const finalTotal = Object.values(finalResult.data).reduce((sum, questions) => sum + questions.length, 0);
|
|
resultsDiv.innerHTML += `<div class="test-result success">✓ 期末考试筛选正常: ${finalTotal}题</div>`;
|
|
resultsDiv.innerHTML += `<div class="test-result"> - 基础题: ${finalResult.data['基础题'].length}题</div>`;
|
|
resultsDiv.innerHTML += `<div class="test-result"> - 进阶题: ${finalResult.data['进阶题'].length}题</div>`;
|
|
resultsDiv.innerHTML += `<div class="test-result"> - 竞赛题: ${finalResult.data['竞赛题'].length}题</div>`;
|
|
} else {
|
|
resultsDiv.innerHTML += '<div class="test-result error">✗ 期末考试筛选失败</div>';
|
|
}
|
|
|
|
// 测试4: 对比期中期末题目数量
|
|
console.log('测试4: 对比期中期末题目数量');
|
|
if (midtermResult.success && finalResult.success) {
|
|
const midtermCount = Object.values(midtermResult.data).reduce((sum, questions) => sum + questions.length, 0);
|
|
const finalCount = Object.values(finalResult.data).reduce((sum, questions) => sum + questions.length, 0);
|
|
|
|
if (finalCount > midtermCount) {
|
|
resultsDiv.innerHTML += '<div class="test-result success">✓ 期末题目数量大于期中,符合预期</div>';
|
|
} else {
|
|
resultsDiv.innerHTML += '<div class="test-result error">✗ 期末题目数量应该大于期中</div>';
|
|
}
|
|
}
|
|
|
|
// 测试5: 具体单元筛选
|
|
console.log('测试5: 具体单元筛选');
|
|
const unitResponse = await fetch('/api/questions-by-filters?subject=科学&grade=一年级上册&unit=1-周围的植物');
|
|
const unitResult = await unitResponse.json();
|
|
|
|
if (unitResult.success) {
|
|
const unitTotal = Object.values(unitResult.data).reduce((sum, questions) => sum + questions.length, 0);
|
|
resultsDiv.innerHTML += `<div class="test-result success">✓ 具体单元筛选正常: ${unitTotal}题</div>`;
|
|
} else {
|
|
resultsDiv.innerHTML += '<div class="test-result error">✗ 具体单元筛选失败</div>';
|
|
}
|
|
|
|
resultsDiv.innerHTML += '<div class="test-result success"><strong>所有测试完成!</strong></div>';
|
|
|
|
} catch (error) {
|
|
console.error('测试失败:', error);
|
|
resultsDiv.innerHTML = `<div class="test-result error">测试失败: ${error.message}</div>`;
|
|
}
|
|
}
|
|
|
|
// 页面加载完成后运行测试
|
|
window.onload = runTests;
|
|
</script>
|
|
</body>
|
|
</html> |