Unit testing 颤振单元测试。运行测试时出错

Unit testing 颤振单元测试。运行测试时出错,unit-testing,flutter,Unit Testing,Flutter,运行颤振单元测试时出现以下错误 00:05+1:。。。 /主页/kazekage/Projects/flatter/flatter\u商业/test/model/util/return\u test.dart Shell:[错误:颤振/Shell/common/Shell.cc(184)]省道错误:错误: dart的导入:带 --启用镜像=假外壳:[错误:颤振/Shell/common/engine.cc(175)]无法准备运行 隔离。外壳:[错误:颤振/外壳/普通/发动机.cc(122)]发动

运行颤振单元测试时出现以下错误

00:05+1:。。。 /主页/kazekage/Projects/flatter/flatter\u商业/test/model/util/return\u test.dart Shell:[错误:颤振/Shell/common/Shell.cc(184)]省道错误:错误: dart的导入:带 --启用镜像=假外壳:[错误:颤振/Shell/common/engine.cc(175)]无法准备运行 隔离。外壳:[错误:颤振/外壳/普通/发动机.cc(122)]发动机 不准备和启动隔离。外壳: [错误:颤振/壳体/测试/测试器_main.cc(199)]无法启动 具有配置的引擎。00:05+1-1:装载 /主页/kazekage/Projects/flatter/flatter\u商业/test/model/util/return\u test.dart [E] 加载失败 “/home/kazekage/Projects/flatter/flatter\u-woocommerce/test/model/util/return\u-test.dart”: Shell子进程在连接到测试之前干净地报告了一个错误 挽具。检查上面的日志中是否有错误消息。测试: /主页/kazekage/Projects/flatter/flatter\u商业/test/model/util/return\u test.dart 外壳: /home/kazekage/Developement/flatter_linux_v1.2.1-stable/flatter/bin/cache/artifacts/engine/linux-x64/flatter_tester Shell:[错误:颤振/Shell/common/Shell.cc(184)]省道错误:错误:导入省道:带 --启用镜像=假外壳:[错误:颤振/Shell/common/engine.cc(175)]无法准备运行 隔离。外壳:[错误:颤振/外壳/普通/发动机.cc(122)]发动机 不准备和启动隔离。外壳: [错误:颤振/壳体/测试/测试器_main.cc(199)]无法启动 具有配置的引擎。00:05+1-2:装载 /主页/kazekage/Projects/flatter/flatter\u商业/test/model/util/LineItem\u test.dart [E] 加载失败 “/home/kazekage/Projects/flatter/flatter\u-woocommerce/test/model/util/LineItem\u-test.dart”: Shell子进程在连接到测试之前干净地报告了一个错误 挽具。检查上面的日志中是否有错误消息。测试: /主页/kazekage/Projects/flatter/flatter\u商业/test/model/util/LineItem\u test.dart 外壳: /home/kazekage/Developement/flatter_linux_v1.2.1-stable/flatter/bin/cache/artifacts/engine/linux-x64/flatter_tester Shell:[错误:颤振/Shell/common/Shell.cc(184)]省道错误:错误:导入省道:带 --启用镜像=假外壳:[错误:颤振/Shell/common/engine.cc(175)]无法准备运行 隔离。外壳:[错误:颤振/外壳/普通/发动机.cc(122)]发动机 不准备和启动隔离。外壳: [错误:颤振/壳体/测试/测试器_main.cc(199)]无法启动 具有配置的引擎。00:06+1-3:装载 /home/kazekage/Projects/flatter/flatter\u-woocommerce/test/model/util/ShippingLine\u-test.dart [E] 加载失败 “/home/kazekage/Projects/flatter/flatter\u-woocommerce/test/model/util/ShippingLine\u-test.dart”: Shell子进程在连接到测试之前干净地报告了一个错误 挽具。检查上面的日志中是否有错误消息。测试: /home/kazekage/Projects/flatter/flatter\u-woocommerce/test/model/util/ShippingLine\u-test.dart 外壳: /home/kazekage/Developement/flatter_linux_v1.2.1-stable/flatter/bin/cache/artifacts/engine/linux-x64/flatter_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
标记省道

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;
}
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');
  });
}
import'package:build_value/build_value.dart';
导入“package:builded_value/serializer.dart”;
导入“package:flatter_-woocommerce/model/util/Link.dart”;
零件“标记g.dart”;
抽象类标记实现了{
静态序列化程序get序列化器=>>\u$tagSerializer;
int获取id;
字符串获取名称;
串得到段塞;
@可空
字符串获取描述;
@可空
int得到计数;
@可空
@BuiltValueField(线名:“\u链接”)
链接获取链接;
标签;
工厂标签([更新(标签生成器b)])=\uu$Tag;
}
标记测试.省道

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;
}
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');
  });
}
导入“包:颤振测试/颤振测试.dart”;
导入“dart:convert”;
导入“package:Build_collection/Build_collection.dart”;
导入“包:颤振/测试字符串.dart”;
导入“package:flatter_-woocommerce/model/Serializers.dart”;
导入“包:flatter_-woocommerce/model/Tag.dart”;
导入“package:flatter_-woocommerce/model/util/Link.dart”;
void main(){
final parsedJson=json.decode(TestStrings.TAG_json);
Tag Tag=serializers.deserializeWith(Tag.serializer,parsedJson);
测试('id',(){
expect(tag.id,32);
});
测试('名称',(){
expect(tag.name,“Telephone”);
});
测试('slug',(){
expect(tag.slug,“telephone”);
});
测试('说明',(){
expect(tag.description“”);
});
测试('计数',(){
expect(tag.count,0);
});
测试(“U链接是链接对象”,(){
expect(tag.links,isInstanceOf());
});
测试(“_links>self是href[]”,(){
expect(tag.links.self,isInstanceOf());
});
测试(''链接>集合为href[]',(){
expect(tag.links.collection,isInstanceOf());
});
测试(''链接>集合>href值',(){
expect(tag.links.collection.first.href,'http://paathsala-wp.test/wp-json/wc/v2/products/tags');
});
}

问题是您试图使用反射(省道:镜像),这在颤振中是不可能的,因为:

由于反射使默认情况下所有代码都隐式使用,因此它会干扰树抖动


我相信这与
内置值生成器提供的JSON序列化有关。
dart包。

似乎我在一个模型类中导入了错误的库。有一次我搬走了图书馆

import 'package:built_collection/built_collection.dart';

所有测试都通过。

您可以发布颤振单元测试吗?其他细节与该问题无关。你的IDE上有错误消息吗?@MarianoZorrilla我已经用单元测试更新了这个问题。几分钟前它还在工作。所有的测试都通过了,现在它不起作用了。让我们看看是否能找到解决方案。从那时起,有些事情必须改变。您是否添加或更新了软件包?或者可能添加了另一个q中不存在的代码