From d991ef91c1c6516c6d80a33ea9b59739066dd0d9 Mon Sep 17 00:00:00 2001 From: RyuJongJin <266630912+RyuJongJin@users.noreply.github.com> Date: Sun, 11 Oct 2026 23:40:11 +0900 Subject: [PATCH] =?UTF-8?q?=EC=8B=9C=ED=97=98=20=ED=9D=94=EB=93=A4?= =?UTF-8?q?=EB=A6=BC:=20=EC=97=AC=EB=9F=AC=20=EA=B0=9C=20=ED=91=9C?= =?UTF-8?q?=EC=8B=9C=20=EC=8B=9C=ED=97=98=EC=9D=80=20=EB=AA=A9=EB=A1=9D=20?= =?UTF-8?q?=EB=8B=A4=EC=8B=9C=20=EC=9D=BD=EA=B8=B0=EA=B0=80=20=EB=81=9D?= =?UTF-8?q?=EB=82=9C=20=EB=92=A4=20=EC=83=88=20=ED=8F=B4=EB=8D=94=20=C2=B7?= =?UTF-8?q?=20=EC=9D=B4=EB=A6=84=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 무거운 전체 실행에서 pumpAndSettle 이 창들의 다시 읽기 진행 막대 때문에 시간 초과 - idle() 로 실제 시간 기다림 (시험만, 관리자 승인) Co-Authored-By: Claude Opus 5.5 --- test/explorer_test.dart | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/test/explorer_test.dart b/test/explorer_test.dart index bf7874e..86fc3c0 100644 --- a/test/explorer_test.dart +++ b/test/explorer_test.dart @@ -561,13 +561,15 @@ void main() { await settle(tester, () => find.text('doc.txt').evaluate().isEmpty); expect(Directory(left).listSync(), isEmpty); - // 새 폴더 → 이름 변경 + // 새 폴더 → 이름 변경 (지운 뒤 창들이 목록을 다시 읽는 동안은 진행 막대가 돌아 pumpAndSettle 이 끝나지 않는다 - 무거울 때 흔들림) + await idle(tester); await act(tester, () => tester.tap(find.text('새 폴더').first)); await tester.pumpAndSettle(); await act(tester, () => tester.enterText(find.byType(TextField), 'films')); await act(tester, () => tester.tap(find.widgetWithText(FilledButton, '확인'))); await settle(tester, () => find.text('films').evaluate().isNotEmpty); expect(Directory(p.join(left, 'films')).existsSync(), isTrue); + await idle(tester); await act(tester, () => tester.tap(find.text('이름 변경').first)); await tester.pumpAndSettle(); await act(tester, () => tester.enterText(find.byType(TextField), 'movies')); @@ -741,6 +743,11 @@ Future doubleTap(WidgetTester tester, Finder f) async { await tester.pump(); } +/// 창들이 목록을 다시 읽는 중 (맨 위 진행 막대) 이 끝날 때까지 실제 시간으로 기다린다. +/// 그사이 pumpAndSettle 을 하면 막대가 계속 움직여, 디스크 읽기가 늦을 때 (전체 시험이 무거울 때) 시간 초과가 난다 +Future idle(WidgetTester tester) => + settle(tester, () => find.byType(LinearProgressIndicator).evaluate().isEmpty && find.byType(CircularProgressIndicator).evaluate().isEmpty); + /// 실제 파일 작업 (비동기 IO) 이 끝나기를 기다리며 화면을 갱신 // 끝나면 바로 나온다 - 넉넉한 횟수는 전체 시험 중 PC 가 바쁠 때 (실제 파일 입출력이 느려짐) 흔들리지 않게 Future settle(WidgetTester tester, bool Function() done, {int rounds = 300}) async {