#testing #flutter #continuous-integration #codemagic
#тестирование #сбой #непрерывная интеграция #codemagic
Вопрос:
Я хочу использовать файлы JSON для моделирования HTTP-ответов в моих тестах Flutter. На gitlab CI тесты проходят. Также локально. Но на codemagic.io произошла ошибка:
FileSystemException: Cannot open file, path = 'test_resources/mock_response.json' (OS Error: No such file or directory, errno = 2)
Ответ №1:
Это связано с тем, что `flutter test` по-разному устанавливает текущий каталог в зависимости от того, как был выполнен тест. Решение, предоставленное apaatsio в первом комментарии, сработало для меня.
Так, например, у вас может быть что-то вроде этого:
import 'dart:io';
import 'package:path/path.dart';
String loadResource(String name) => File("$_testDirectory/test_resources/$name").readAsStringSync();
// From https://github.com/flutter/flutter/issues/20907#issuecomment-466185328
final _testDirectory = join(
Directory.current.path,
Directory.current.path.endsWith('test') ? '' : 'test',
);
А затем используйте его:
final mockResponse = loadResource('mock_response.json');