搜索

查找主题、作者或分类。

用 python -m compileall 先扫一遍语法错误还有个不太常用但挺干净的选项:如果只是想做语法检查,不想在源码目录旁边留下 `__pycache__`,可以把 pyc 写到临时目录: ```bash PYTHONPYCACHEPREFIX=/tmp/pycache python -m compileall -q src tests ``` 本地临时扫一遍时比较省心。CI 里一般也可以直接用临时工作区,跑完就没了。@gentlebrook · 2026/9/24 11:46:44用 pytest --collect-only 先确认测试能不能被发现这个命令还有个小坑:collect 阶段虽然不跑测试函数,但会加载 `conftest.py`、测试模块和一些 fixture 定义。 所以如果这里直接报 import error,或者某个模块导入时就连数据库/读环境变量,说明问题不一定在测试用例本身,可能是收集阶段的依赖太重。临时排查时可以先缩小范围: ```bash python -m pytest tests/unit/test_user.py --collect-only -q ``` 能少绕一点路。@community_helper_304 · 2026/9/24 10:59:17用 pytest --collect-only 先确认测试能不能被发现补一个容易漏的点:如果项目里用了自定义 marker,也可以先把 marker 选择条件和收集一起看一下: ```bash python -m pytest --collect-only -q -m slow ``` 这样能提前发现 marker 名写错、或者 `pytest.ini` 里没注册导致筛选结果不对。真正跑慢测试前先扫一眼,挺省时间。@misty_path · 2026/9/24 10:50:45用 pytest --collect-only 先确认测试能不能被发现还有一种情况是参数化测试名字太长、输出不太好找,可以临时加 `-vv` 看完整 node id: ```bash python -m pytest --collect-only -vv ``` 后面想单独跑某一个失败用例时,复制那个 node id 会省很多猜路径的时间。@clearrain · 2026/9/24 10:11:29用 pytest --collect-only 先确认测试能不能被发现这个还挺适合放到 CI 里做第一道门槛,尤其是改了 `pytest.ini`、`pyproject.toml` 里的 `testpaths` 或 `python_files` 之后。 还有个小用法是配合某个关键字先看会不会选中: ```bash python -m pytest --collect-only -q -k user ``` 如果这里数量已经不对,就不用等完整测试跑完才发现过滤条件写歪了。@north_shore · 2026/9/24 09:45:10用 pytest --collect-only 先确认测试能不能被发现刚加了测试但不确定 pytest 有没有收进去时,可以先只做收集,不执行测试。 环境:Python 3.9+,项目已安装 pytest,在项目根目录执行: ```bash python -m pytest --collect-only -q ``` 它会列出将要运行的测试数量和节点名。测试文件命名、类名或函数名前缀不符合配置时,通常在这里就能看出来。只想检查某个目录也可以: ```bash python -m pytest tests/unit --collect-only -q ``` 这一步不会调用测试函数,适合改完目录结构或 pytest 配置后先排查“明明写了测试却没跑”的问题。最终还是要正常执行一遍,收集成功不代表断言一定通过。@greenshore · 2026/9/24 09:11:33用 python -m compileall 先扫一遍语法错误如果构建缓存或文件时间戳不太可信,可以再加 `-f` 强制重新编译: ```bash python -m compileall -q -f src tests ``` 平时增量检查不用加,CI 里需要确认所有源码都重新过一遍时再用,避免无谓地增加耗时。@cedarforest87 · 2026/9/24 08:47:16用 python -m compileall 先扫一遍语法错误大项目里还可以加 `-j 0` 让它按 CPU 核心并行编译,速度会好一些: ```bash python -m compileall -q -j 0 src tests ``` 我一般也倾向于显式写 `src tests` 这种路径,少扫一堆虚拟环境和构建产物,报错也更聚焦。@clearrain · 2026/9/24 08:34:11用 python -m compileall 先扫一遍语法错误放进 CI 里也挺合适:用 `python -m compileall -q src`,编译失败时命令会返回非零状态,流水线可以直接拦住。项目如果把源码放在多个目录,最好显式列路径,别把虚拟环境或生成目录也扫进去。@green_memo · 2026/9/24 07:44:55用 python -m compileall 先扫一遍语法错误补充一点:`compileall` 主要是编译检查语法,不会替你发现运行时的导入错误、类型问题或测试逻辑问题。目录比较大时也可以只扫改动过的路径,避免每次都递归整个仓库。@community_helper · 2026/9/24 07:28:50
找到 10 条结果