- 从服务器拉取完整代码 - 按框架规范整理项目结构 - 配置 Drone CI 测试环境部署 - 包含后端(FastAPI)、前端(Vue3)、管理端 技术栈: Vue3 + TypeScript + FastAPI + MySQL
53 lines
1.7 KiB
Python
53 lines
1.7 KiB
Python
"""
|
|
测试考试记录API
|
|
"""
|
|
import asyncio
|
|
from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine
|
|
from sqlalchemy.orm import sessionmaker
|
|
from app.services.exam_service import ExamService
|
|
from app.core.config import settings
|
|
|
|
async def test_exam_records():
|
|
"""测试获取考试记录"""
|
|
# 创建数据库连接
|
|
engine = create_async_engine(
|
|
settings.SQLALCHEMY_DATABASE_URI,
|
|
echo=True,
|
|
future=True
|
|
)
|
|
|
|
async_session = sessionmaker(
|
|
engine, class_=AsyncSession, expire_on_commit=False
|
|
)
|
|
|
|
async with async_session() as db:
|
|
# 测试user_id=5的考试记录
|
|
print("\n========== 测试user_id=5的考试记录 ==========")
|
|
records = await ExamService.get_exam_records(
|
|
db=db,
|
|
user_id=5,
|
|
page=1,
|
|
size=10
|
|
)
|
|
|
|
print(f"\n总记录数: {records['total']}")
|
|
print(f"当前页: {records['page']}")
|
|
print(f"每页数量: {records['size']}")
|
|
print(f"总页数: {records['pages']}")
|
|
print(f"\n记录列表:")
|
|
|
|
for item in records['items']:
|
|
print(f"\nID: {item['id']}")
|
|
print(f" 考试名称: {item['exam_name']}")
|
|
print(f" 课程名称: {item['course_name']}")
|
|
print(f" 得分: {item['score']}")
|
|
print(f" 正确率: {item['accuracy']}%")
|
|
print(f" 正确数: {item['correct_count']}")
|
|
print(f" 错题数: {item['wrong_count']}")
|
|
print(f" 用时: {item['duration_seconds']}秒")
|
|
print(f" 分题型统计: {len(item['question_type_stats'])}种题型")
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(test_exam_records())
|
|
|