tests/test_tests_actually_run.py
Rama main · réplica de lectura del repositorio original.
"""測試檔要真的跑得起來,不能安靜地什麼都不做。
VPS 上沒有 pytest,測試是用 `python3 tests/test_x.py` 一支一支跑的。
少了 `if __name__ == "__main__": unittest.main()` 的檔案,這樣執行會
**什麼都不做然後回傳 0**——在逐檔迴圈裡看起來跟通過一模一樣。
2026-09-02 抓到的第一個:tests/test_xkb_memory_service.py 的 32 個測試
在 VPS 上從來沒有跑過,而部署後的驗收一直是綠的。
"""
from __future__ import annotations
import re
import unittest
from pathlib import Path
TESTS = Path(__file__).resolve().parent
_MAIN = re.compile(r"^if __name__ == .__main__.:", re.M)
class TestsActuallyRunTest(unittest.TestCase):
def test_every_test_file_runs_when_executed_directly(self) -> None:
offenders = [
path.name
for path in sorted(TESTS.glob("test_*.py"))
if not _MAIN.search(path.read_text(encoding="utf-8"))
]
self.assertEqual(
offenders, [],
"加上 if __name__ == \"__main__\": unittest.main();"
"否則在沒有 pytest 的機器上,這個檔案會安靜地回傳 0",
)
if __name__ == "__main__":
unittest.main()