Ресурсы для тестирования Flutter в codemagic

#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');