新增 run_tests.py:三套件统一入口,只加仓库根(deploy 套件 再加 deploy/ 目录在根之前),各套件走独立子进程;verify 作 业改走运行器,coverage 作业因子进程测不到覆盖率保持原 discover 命令。tests/ 13 个文件的 sys.path 前置 import 全部 改回正常 import(含 test_host_trace 的 try/except 回落); deploy 的 deploy 目录插入与 verify-multiuser 的 spec 加载按 陷阱 2 如实保留(仅删 verify-multiuser 冗余的根插入)。 .coveragerc omit 加 */run_tests.py,使新运行器文件不计入 生产覆盖率。门槛未动(仍 75%),未补新测试。
29 lines
924 B
INI
29 lines
924 B
INI
# Coverage 配置:只计量生产代码,测试本身、工作区、示例不计。
|
|
# 阈值不在此文件写死,写在 workflow 的 --fail-under 里,便于在
|
|
# workflow diff 中一眼看到门槛变化。
|
|
# source 注意:不能写 host.py / client.py / run_parallel.py 这种文件
|
|
# 路径——coverage 会把它们当模块名处理、静默丢弃(实测:那样 host.py
|
|
# 等 3 个根文件根本不进报告,总数少 2223 行)。正确写法是目录源
|
|
# “.”(含根模块与 cloud 包)+ deploy(非包目录,需单独列),
|
|
# 实测恰好 58 个生产文件、22392 行,与 mypy 生产文件数一致。
|
|
[run]
|
|
source =
|
|
.
|
|
deploy
|
|
omit =
|
|
*/tests/*
|
|
*/test_*.py
|
|
cloud/tests/*
|
|
deploy/tests/*
|
|
tests/*
|
|
work/*
|
|
examples/*
|
|
*/run_tests.py
|
|
|
|
[report]
|
|
show_missing = False
|
|
exclude_lines =
|
|
pragma: no cover
|
|
def __repr__
|
|
raise NotImplementedError
|