Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/test-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ jobs:
name: golden-failures-flutter-3.32.0
path: |
tdesign-component/test/**/failures/
tdesign-component/example/test/failures/
tdesign-component/example/test/**/failures/
if-no-files-found: ignore
retention-days: 7

Expand Down
3 changes: 3 additions & 0 deletions specs/070-existing-test-determinism/acceptance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# 验收

拆分来源:053ecf89。原组合分支 Linux CI 38714603359 的 Calendar/Indexes 既有 Golden 已通过;本分支需独立核对 CI。没有更新 PNG、降低阈值或更改生产日期逻辑。Search 原有 showTestModule=false 契约保留。
3 changes: 3 additions & 0 deletions specs/070-existing-test-determinism/plan.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# 方案

仅在居中测试 fixture 中设置 todayDayStyle;Search 通过 TSearchBar 的 hintText 定位内部 TextField。artifact 收集改为 example/test/**/failures/ 并由现有调度器自测校验。独立基于 develop,可先于发布准备合并。
5 changes: 5 additions & 0 deletions specs/070-existing-test-determinism/spec.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# 既有测试确定性与失败取证修复

固定 Calendar/Indexes 居中测试中的今日文字色,避免真实日期污染固定月份截图;保留组件今日和选中态专门测试。修复 Search 功能测试对子 TextField 的过时定位,以及 GitHub 嵌套 Demo 失败图片收集路径。

不改变生产组件、Demo 显示策略、测试集合、比较容差或任何 PNG 基线。
5 changes: 5 additions & 0 deletions specs/070-existing-test-determinism/tasks.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# 任务

- [x] 从发布准备 PR 拆出既有测试修复。
- [x] 保留既有断言语义及精确 Golden 比较。
- [ ] 核对拆分后 CI 与双版本功能测试。
10 changes: 6 additions & 4 deletions tdesign-component/example/test/search/search_page_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -96,10 +96,12 @@ void main() {
await tester.pumpWidget(buildPage());
await tester.pump();

final resultField = find.byWidgetPredicate(
(widget) =>
widget is TextField &&
widget.decoration?.hintText == '输入tdesign,有预览结果',
final resultField = find.descendant(
of: find.byWidgetPredicate(
(widget) =>
widget is TSearchBar && widget.hintText == '输入tdesign,有预览结果',
),
matching: find.byType(TextField),
);
await tester.tap(resultField);
await tester.pump();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -266,9 +266,12 @@ void _calendarIndexesScenes() {
brightness: brightness,
extensions: [
token,
const TCalendarThemeData(
TCalendarThemeData(
// 本场景只验证居中,不让真实“今天”改变固定日期的截图。
// 今日状态的颜色由 Calendar 独立状态测试覆盖。
todayDayStyle: TextStyle(color: token.textColorPrimary),
height: 550,
monthTitleStyle: TextStyle(
monthTitleStyle: const TextStyle(
fontSize: 24,
height: 2,
color: Colors.purple,
Expand Down
8 changes: 8 additions & 0 deletions tdesign-component/test/tool/run_visual_regression_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,14 @@ void main() {
);
});

test('GitHub uploads failures from nested Demo directories', () {
final workflow = File(
'../.github/workflows/test-build.yml',
).readAsStringSync();
expect(workflow, contains('tdesign-component/test/**/failures/'));
expect(workflow, contains('tdesign-component/example/test/**/failures/'));
});

test('visual regression suite names are unique', () {
final names = visualTestSuites.map((suite) => suite.name).toList();
expect(names.toSet(), hasLength(names.length));
Expand Down
Loading