Uninote
Uninote
用户根目录
brdr
common
programming
docs
tests
后端试题
问题讨论

测试运行说明

在项目根目录执行以下命令。

Dart 测试按功能模块组织在 test/app/、test/library/、test/notes/、test/markdown/、 test/difference/、test/sync/、test/photos/、test/voice/、test/mp3/ 和 test/shared/。 flutter test 会发现这些子目录中的全部测试;test/ui/ 保留独立的 Android UI 回归脚本, test/data/ 保留从项目根目录读取的共享夹具。

标签相关测试按职责拆分,运行 flutter test test/notes/ 可一并验证:

  • note_tabs_test.dart:基础标签状态、编辑控件和列表选择、关闭操作。
  • note_tabs_pinned_test.dart:固定标签布局、点击手势和 MRU 列表排序。
  • note_tab_session_test.dart:标签草稿、视图状态持久化与冲突恢复。
  • tab_session_controller_test.dart:标签会话控制器及 MRU 状态管理。

查看失败用例

项目通过 dart_test.yaml 默认使用 expanded 输出,每次更新独占一行,保留用例名称、失败原因和堆栈。 末尾仍会显示汇总;具体失败信息在之前标记为 [E] 的用例附近。

flutter test

也可以临时指定输出格式,或只显示失败用例:

flutter test --reporter expanded
flutter test --reporter failures-only

需要保存完整输出以便搜索时:

flutter test --reporter expanded 2>&1 | Tee-Object -FilePath test-output.log

test-output.log 是本地诊断日志,不要提交到 Git。

指定运行用例

运行单个文件,或一次运行多个文件:

flutter test test/difference/line_diff_test.dart
flutter test test/difference/line_diff_test.dart test/markdown/markdown_outline_test.dart

按用例名称的普通文本子串筛选;可以与文件路径一起使用:

flutter test test/difference/line_diff_test.dart --plain-name "matches long text line diff fixtures"

--plain-name 是子串匹配,可能选中多个用例。需要精确匹配时,用 --name 正则表达式并加上首尾锚点:

flutter test test/difference/line_diff_test.dart --name '^matches long text line diff fixtures$'

有 group 时,匹配的完整名称还包含分组名称。以测试输出中的完整名称为准,正则中的特殊字符需要转义。

只调试第一个失败时:

flutter test --reporter expanded --fail-fast

quick-open-migration

2026-10-23-edit-read-30min

点赞(0) 阅读(15) 举报
目录
标题