import 'dart:io'; import 'package:flutter_test/flutter_test.dart'; /// 뒤에서 저장이 끝나는 것 (책갈피 저장 등) 을 기다렸다가 지울 임시 폴더 - 시험 파일이 끝날 때 지운다. /// 시험마다 바로 지우면 늦게 끝난 저장이 폴더를 다시 만들어 %TEMP% 에 jj_* 가 남았다 (관리자 지시 10/17, tool/test_temp_check.ps1). final _later = []; /// [prefix] 로 임시 폴더를 만들고, 파일 끝 ([deleteTempDirsAtEnd]) 에 지우도록 적어 둔다 Directory tempDirUntilEnd(String prefix) { final d = Directory.systemTemp.createTempSync(prefix); _later.add(d); return d; } /// main() 에서 한 번 부른다: 파일의 시험이 다 끝나면 [tempDirUntilEnd] 로 만든 폴더를 지운다 /// (늦게 끝난 저장이 다시 만들 수 있어 잠깐씩 기다리며 몇 번 본다) void deleteTempDirsAtEnd() { tearDownAll(() async { for (var round = 0; round < 5; round++) { await Future.delayed(const Duration(milliseconds: 200)); for (final d in _later) { try { if (d.existsSync()) d.deleteSync(recursive: true); } on FileSystemException { // 잠깐 잡혀 있으면 다음 차례에 } } } _later.removeWhere((d) => !d.existsSync()); }); }