Тестирование флаттера.ошибка при выполнении теста - PullRequest
1 голос
/ 18 июня 2019

Я получаю следующее сообщение об ошибке во время выполнения теста флаттера.

00: 05 +1: ... / home / kazekage / Проекты / флаттер / flutter_woocommerce / test / model / util / Refund_test.dart Shell: [ОШИБКА: флаттер / shell / common / shell.cc (184)] Ошибка дротика: ошибка: импорт дротика: зеркала с --enable-mirrors = false Оболочка: [ОШИБКА: флаттер / оболочка / common / engine.cc (175)] Не удалось подготовиться к запуску изолята.Оболочка: [ОШИБКА: флаттер / оболочка / общая / engine.cc (122)] Двигатель не готовится и запускается изолировать.Оболочка: [ОШИБКА: флаттер / оболочка / testing / tester_main.cc (199)] Не удалось запустить двигатель с конфигурацией.00:05 +1 -1: загрузка /home/kazekage/Projects/flutter/flutter_woocommerce/test/model/util/Refund_test.dart [E] Не удалось загрузить "/ home / kazekage / Projects / flutter / flutter_woocommerce / test / model/util/Refund_test.dart ": Подпроцесс Shell без ошибок сообщил об ошибке перед подключением к тестовому жгуту.Проверьте журналы выше для сообщения об ошибке.Тест: /home/kazekage/Projects/flutter/flutter_woocommerce/test/model/util/Refund_test.dart Оболочка: /home/kazekage/Developement/flutter_linux_v1.2.1-stable/flutter/bin/cache/artifacts-x64// flutter_tester Оболочка: [ОШИБКА: флаттер / shell / common / shell.cc (184)] Ошибка дротика: ошибка: импорт дротика: зеркала с --enable-mirrors = false Оболочка: [ОШИБКА: флаттер / оболочка / common / engine.cc (175)] Не удалось подготовиться к запуску изолята.Оболочка: [ОШИБКА: флаттер / оболочка / общая / engine.cc (122)] Двигатель не готовится и запускается изолировать.Оболочка: [ОШИБКА: флаттер / оболочка / testing / tester_main.cc (199)] Не удалось запустить двигатель с конфигурацией.00:05 +1 -2: загрузка /home/kazekage/Projects/flutter/flutter_woocommerce/test/model/util/LineItem_test.dart [E] Не удалось загрузить "/ home / kazekage / Projects / flutter / flutter_woocommerce / test / model/util/LineItem_test.dart ": Подпроцесс оболочки чисто сообщил об ошибке перед подключением к тестовому жгуту.Проверьте журналы выше для сообщения об ошибке.Тест: /home/kazekage/Projects/flutter/flutter_woocommerce/test/model/util/LineItem_test.dart Оболочка: /home/kazekage/Developement/flutter_linux_v1.2.1-stable/flutter/bin/cache/artifacts-x64// flutter_tester Оболочка: [ОШИБКА: флаттер / shell / common / shell.cc (184)] Ошибка дротика: ошибка: импорт дротика: зеркала с --enable-mirrors = false Оболочка: [ОШИБКА: флаттер / оболочка / common / engine.cc (175)] Не удалось подготовиться к запуску изолята.Оболочка: [ОШИБКА: флаттер / оболочка / общая / engine.cc (122)] Двигатель не готовится и запускается изолировать.Оболочка: [ОШИБКА: флаттер / оболочка / testing / tester_main.cc (199)] Не удалось запустить двигатель с конфигурацией.00:06 +1 -3: загрузка /home/kazekage/Projects/flutter/flutter_woocommerce/test/model/util/ShippingLine_test.dart [E] Не удалось загрузить "/ home / kazekage / Projects / flutter / flutter_woocommerce / test / model/util/ShippingLine_test.dart ": Подпроцесс Shell без ошибок сообщил об ошибке перед подключением к тестовому жгуту.Проверьте журналы выше для сообщения об ошибке.Тест: /home/kazekage/Projects/flutter/flutter_woocommerce/test/model/util/ShippingLine_test.dart Оболочка: /home/kazekage/Developement/flutter_linux_v1.2.1-stable/flutter/bin/cache/artifacts/xgine/ flutter_tester

pubsec.yml

name: flutter_woocommerce
description: A new Flutter package project.
version: 0.0.1
author:
homepage:

environment:
  sdk: ">=2.1.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter
  dio: ^2.1.6
  built_value: ^6.6.0
  built_value_generator: ^6.6.0
  built_collection: ^4.2.2

dev_dependencies:
  flutter_test:
    sdk: flutter
  mockito: ^4.0.0
  build_runner: ^1.5.0
  source_gen: ^0.9.4+2

# For information on the generic Dart part of this file, see the
# following page: https://www.dartlang.org/tools/pub/pubspec

# The following section is specific to Flutter.
flutter:

  # To add assets to your package, add an assets section, like this:
  # assets:
  #  - images/a_dot_burr.jpeg
  #  - images/a_dot_ham.jpeg
  #
  # For details regarding assets in packages, see
  # https://flutter.io/assets-and-images/#from-packages
  #
  # An image asset can refer to one or more resolution-specific "variants", see
  # https://flutter.io/assets-and-images/#resolution-aware.

  # To add custom fonts to your package, add a fonts section here,
  # in this "flutter" section. Each entry in this list should have a
  # "family" key with the font family name, and a "fonts" key with a
  # list giving the asset and other descriptors for the font. For
  # example:
  # fonts:
  #   - family: Schyler
  #     fonts:
  #       - asset: fonts/Schyler-Regular.ttf
  #       - asset: fonts/Schyler-Italic.ttf
  #         style: italic
  #   - family: Trajan Pro
  #     fonts:
  #       - asset: fonts/TrajanPro.ttf
  #       - asset: fonts/TrajanPro_Bold.ttf
  #         weight: 700
  #
  # For details regarding fonts in packages, see
  # https://flutter.io/custom-fonts/#from-packages

доктор флаттера

[✓] Flutter (Channel stable, v1.5.4-hotfix.2, on Linux, locale en_US.UTF-8)

[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[✓] Android Studio (version 3.4)
[!] IntelliJ IDEA Ultimate Edition (version 2018.3)
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
[✓] VS Code (version 1.35.0)
[!] Connected device
    ! No devices available

! Doctor found issues in 2 categories.

Tag.dart

import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
import 'package:flutter_woocommerce/model/util/Link.dart';

part 'Tag.g.dart';

abstract class Tag implements Built<Tag, TagBuilder> {
  static Serializer<Tag> get serializer => _$tagSerializer;

  int get id;

  String get name;

  String get slug;

  @nullable
  String get description;

  @nullable
  int get count;

  @nullable
  @BuiltValueField(wireName: '_links')
  Link get links;

  Tag._();

  factory Tag([updates(TagBuilder b)]) = _$Tag;
}

Tag_test.dart

import 'package:flutter_test/flutter_test.dart';
import 'dart:convert';
import 'package:built_collection/built_collection.dart';
import 'package:flutter_woocommerce/test_strings.dart';
import 'package:flutter_woocommerce/model/Serializers.dart';
import 'package:flutter_woocommerce/model/Tag.dart';
import 'package:flutter_woocommerce/model/util/Link.dart';

void main() {

  final parsedJson = json.decode(TestStrings.TAG_JSON);
  Tag tag = serializers.deserializeWith(Tag.serializer, parsedJson);

  test('id', () {
    expect(tag.id, 32);
  });

  test('name', () {
    expect(tag.name, 'Telephone');
  });

  test('slug', () {
    expect(tag.slug, 'telephone');
  });

  test('description', () {
    expect(tag.description, '');
  });

  test('count', (){
    expect(tag.count, 0);
  });

  test('_links is Link Object', () {
    expect(tag.links, isInstanceOf<Link>());
  });

  test('_links > self is href[]', () {
    expect(tag.links.self, isInstanceOf<BuiltList<Href>>());
  });

  test('_links > collection is href[]', () {
    expect(tag.links.collection, isInstanceOf<BuiltList<Href>>());
  });

  test('_links > collection > href value', () {
    expect(tag.links.collection.first.href, 'http://paathsala-wp.test/wp-json/wc/v2/products/tags');
  });
}

Ответы [ 2 ]

1 голос
/ 18 июня 2019

Проблема в том, что вы пытаетесь использовать отражение (dart: mirror), что невозможно с Flutter, потому что:

«Поскольку рефлексия делает весь код неявно используемым по умолчанию, это мешает дрожанию дерева». Источник

Я полагаю, что это связано с сериализацией JSON, предоставляемой пакетом built_value_generator dart.

0 голосов
/ 20 июня 2019

Кажется, я импортировал неверную библиотеку в один из моих классов моделей. Однажды я удалил библиотеку

import 'package:built_collection/built_collection.dart';

Все тесты проходят.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...