日志 ·
页面发布前,测试检查什么
AI 翻译 本页是原文(英文/韩文)的机器翻译,可能存在错误,请以原文为准。 阅读原文
ipe.rest 改动之前,137 个小测试会先在我们自己的机器上检查一遍。它们大约要八秒,每次部署时一起运行的只有其中七个,而且有些东西是任何一个测试都看不到的。下面写的是它们看什么。
昨天的文章讲的是给机器看的文件。这一篇讲的是读者永远不会遇到的东西:页面上线之前运行的检查。数字测于 2026 年 11 月 8 日,取自这篇文章加入之前的代码仓库:一条命令,python3 -m unittest discover tests,137 个测试,全部通过。
十个文件,一条命令
测试放在十个文件里,共 1,850 行。重心在日志:137 个里有 56 个是关于日志页面的。另有 23 个覆盖其他页面,例如关于、联系、隐私和条款,18 个覆盖首页。其余是一些小组:搜索引擎通知 9 个,结构化数据 8 个,部署 7 个,时间显示 7 个,服务工作线程 4 个,链接与资源版本 4 个,分享图片 1 个。
它们能抓到什么
这里的许多页面是由我们的原稿生成的:日志文章、站点地图、订阅源、llms.txt 和首页上的卡片。只要有任何一个生成的文件过期,测试就会失败,所以没有人能手工改了文件却忘了原稿。
另一些测试守着语言。每篇文章都必须有十二种语言各一个版本,每个页面都必须链接到其他版本和它自己,站点地图列出的链接必须和页面上的相同。还有一些守着我们给自己定的规矩:不满 300 个词的新文章会被拒绝,不满 400 个词只会给出警告,日期在未来的文章会被退回,页面描述也不能用省略号截断。
服务工作线程能让页面离线打开,它的缓存名称带有版本号。测试会检查每个页面的资源链接里的版本是否与服务工作线程列出的一致,这样改过的样式表就不会被旧版本顶替。
每次部署都跑的七个
部署流程里只运行一个文件,里面有 7 个测试。它检查的是构建好的网站,而不是代码仓库:访客需要的文件在不在,scripts 和 tests 这样的文件夹有没有被上传,404 页面是否标了 noindex 并链接回首页。如果失败,部署会在任何东西发布之前停下。
其余 130 个是一种习惯,而不是一道关卡。我们在提交前运行它们,服务器上没有任何东西强迫我们这样做。
它们看不到什么
测试通过,只说明页面彼此一致,不说明页面好。没有测试会去读那十种机器起草的译文的含义,这就是那些页面带有 AI 翻译说明的原因。这里也没有测试会打开浏览器,所以窄手机屏幕上的版面靠肉眼检查。至于有没有爬虫会注意到我们让这些文件保持同步所花的功夫,我们说不上来。
ipe(); // check the plain things, every time
让一个安静的网站保持安静的,大多是些乏味的事:对得上的数字,点得开的链接,升了级的版本。与其指望我们记得,我们宁愿让机器花八秒钟去检查。