跳转到内容

FeedLantern 本地验收记录 ​

验收日期:2026-09-06。测试使用独立数据目录、合成 Cookie 和可重复的本地页面,不使用个人登录凭据。

环境与命令 ​

本机:macOS、Node.js 26.7.0、pnpm 11.25.0、Playwright 1.63.0 / Chromium 153。项目目标与 CI 为 Node.js 24 LTS。

sh
pnpm build
PLAYWRIGHT_BROWSERS_PATH=0 pnpm test
PLAYWRIGHT_BROWSERS_PATH=0 pnpm test:e2e

PLAYWRIGHT_BROWSERS_PATH=0 对应本机安装位置;其他机器使用默认缓存安装时不需要此变量。Chromium 测试需要系统允许启动沙箱进程。跳过浏览器测试的结果不算验收通过。

本地结果:30 项单元 / 集成 / Chromium DOM 测试通过,11 项端到端测试通过,类型检查与生产构建通过。两个用户提供的公开站点已通过自动推荐复验,详见公开网站记录。

覆盖的行为 ​

场景验证方式
普通文章列表及可选字段实际 DOM 自动检测与预览,核对标题、链接、摘要、图片和日期
非语义卡片、整卡链接和表格列表Chromium 渲染 fixture,检查保存的相对选择器及绝对 URL
导航、多列表与元信息干扰检查候选排序、歧义提示及重复日期标签的标题纠偏
动态页面、懒加载图片延迟插入内容及 data-src 图片;自动识别与同一提取器预览
Cookie header / JSON浏览器访问需 Cookie 的页面、错误凭据不可读、不同上下文隔离;元数据不含值
字段缺失、日期稳定不用整页内容补字段,不为缺失年份或相对时间编造日期
手动纠偏截图缩放点选、选择器修改及手动来源保存
改版、抓取失败原条目保留,错误可见;恢复页面后可继续更新
登录与授权初始化、Host / CSRF、未登录 API 拒绝、改密撤销会话、IP 登录限速和命令重置
RSS独立 XML 解析器解析、内容转义、图片 URL 验证、订阅密钥轮换
持久化与调度关闭并重新打开 SQLite,恢复凭据、历史、订阅密钥和到期后台刷新
并发不同订阅后台抓取排队;编辑等待旧抓取结束,新规则结果不被旧抓取覆盖
网络边界私网 / 特殊地址与恶意重定向拦截、精确主机端口例外和代理连接清理
网页体验浏览器完成创建、保存、复制地址和轮换,桌面与手机布局检查

具体断言见 tests/*.test.ts、tests/e2e/*.spec.ts。测试截图和失败 trace 只写入 Git 忽略的测试目录,CI 不发布这些产物。

公开页面与适用范围 ​

公开网站记录 单独列出真实 URL、执行结果和环境限制。公网响应、站点改版、反自动化机制都会改变结果。fixture 通过和某一次公开页面成功,均不能证明所有网站可用。

本版本不包含全文、翻页、无限滚动采集、交互登录和验证码处理;iframe、封闭 Shadow DOM、Canvas 内部选取也不在验收范围内。Windows、容器镜像和安装包尚未验收或分发。

基于 MIT 许可证开源 · 在自己的服务器上部署