---
# System prepended metadata

title: 测试与部署作业补充说明

---

# 测试与部署作业补充说明

## 环境相关

- scrypt安装失败的问题 可以参考[https://pypi.org/project/scrypt/](https://pypi.org/project/scrypt/)安装openssl
- 建议不要在wsl里面运行exe的chromedriver，可以在windows里面试试
- 如果有遇到这个问题：create _static-volume: "_static-volume" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you intended to pass a host directory, use absolute path，有可能是因为有中文路径，可以尝试把中文路径改为英文路径
- 跑代码风格可以排除一下venv目录

## 补充说明
- 在部署时config.yml文件可以修改，但是不用提交到作业文件里
- 作业要求中“返回错误或缺失字段名（如有多个只需要按前述顺序返回第一个）”的前述顺序是指“register_params_check 函数，实现注册账号 API 参数的校验。接收参数如下”的参数顺序![](https://i.imgur.com/RGh0nD9.jpg)
- 单元测试中的字段必填想表达的是让大家判断是否有这个字段，但是实际评测时测例中不会出现类似于nickname为""或者"    "，测例保证是无nickname字段或者nickname字段为删除掉左右空格后长度大于等于1的字符串，所以大家判断nickname为""或者"    "合法或者不合法都是可以的
- 单元测试部分中“行覆盖率不低于80%”是指checkers\user.py的覆盖率不低于80%
## 提交相关
- ==在提交时请撤销格式化工具自动修改的部分，请在执行打包命令前把zip.py里的'tests/test_selenium.py'改为’tests/test_e2e.py’, ‘zip.py’, ‘实验报告.pdf’==
- 格式化工具部分需要提交能在本地正常运行的版本

## 补充问题
- Q1： param_check里面需要考虑比如"password"这个key缺失的情况吗？对于这种情况是不是一般认为是向后端提交的form出现的问题而不是参数出现的问题，是不是不应该在param_check里面考虑？

    A1：需要考虑
    
- Q2: 论坛的发帖时间似乎要比UTF+8早八个小时（已按照作业说明文档中对MySQL的时区进行校正），请问这个会影响评测吗？

- Q3: param_check 应该如何处理缺失字段，如没有 password 项？按照作业文档似乎需要返回 "password" 和 False。但是根据 test/test_api.py 中提供的示例代码，用缺失信息注册，预期返回 "bad arguments"，这在注册过程中只能通过捕捉 KeyError 得到，而该异常只可能是 param_check 中抛出的，这似乎说明 param_check 需要抛出异常。应该选择哪一种处理方式？