首次编译flutter_driver时出错

时间:2019-12-03 20:51:12

标签: testing flutter integration-testing flutterdriver

在尝试向我的应用程序添加集成测试时,我遵循了以下步骤:

  • 在项目根目录下创建一个文件夹“ test_driver”
  • 在包含(1)的文件夹中创建一个文件app.dart
  • 以及文件“ app_test.dart”(2)

(1)

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_driver/driver_extension.dart';

void main() {
  enableFlutterDriverExtension();
  runApp(Text(
    'Blabla'
  ));
}

(2)

void main() {
  group('Counter App', () {
  });
}

我自愿完全不执行任何测试,而是使用“文本”小部件,但出现此错误:

Using device Android SDK built for x86.
Starting application: test_driver/app.dart
Initializing gradle...                                              0.6s
Resolving dependencies...                                           2.9s
Installing build/app/outputs/apk/app.apk...                         1.1s
Running Gradle task 'assembleDebug'...                                  
Running Gradle task 'assembleDebug'... Done                        36.1s
Built build/app/outputs/apk/debug/app-debug.apk.
Installing build/app/outputs/apk/app.apk...                         0.6s
I/flutter (17401): Observatory listening on http://127.0.0.1:33207/pDO07D1bLwk=/
Crash when compiling package:flutter_driver/flutter_driver.dart,
at character offset null:
Unhandled type: InvalidType
#0      Types.performNullabilityAwareSubtypeCheck (package:front_end/src/fasta/kernel/types.dart:218:7)
#1      Types.areTypeArgumentsOfSubtypeKernel (package:front_end/src/fasta/kernel/types.dart:244:30)
#2      IsInterfaceSubtypeOf.isInterfaceRelated (package:front_end/src/fasta/kernel/types.dart:355:10)
#3      Types.performNullabilityAwareSubtypeCheck (package:front_end/src/fasta/kernel/types.dart:109:26)
#4      Types.isSubtypeOfKernel (package:front_end/src/fasta/kernel/types.dart:47:26)
#5      ClassBuilderImpl._checkTypes (package:front_end/src/fasta/builder/class_builder.dart:1402:15)
#6      ClassBuilderImpl.checkMethodOverride (package:front_end/src/fasta/builder/class_builder.dart:1530:7)
#7      ClassBuilderImpl.checkOverride (package:front_end/src/fasta/builder/class_builder.dart:1002:30)
#8      DelayedOverrideCheck.check.callback (package:front_end/src/fasta/kernel/class_hierarchy_builder.dart:2047:20)
#9      DelayedOverrideCheck.check (package:front_end/src/fasta/kernel/class_hierarchy_builder.dart:2140:13)
#10     SourceLoader.checkOverrides (package:front_end/src/fasta/source/source_loader.dart:897:25)
#11     KernelTarget.buildOutlines.<anonymous closure> (package:front_end/src/fasta/kernel/kernel_target.dart:275:14)
<asynchronous suspension>
#12     withCrashReporting (package:front_end/src/fasta/crash.dart:122:24)
<asynchronous suspension>
#13     KernelTarget.buildOutlines (package:front_end/src/fasta/kernel/kernel_target.dart:249:12)
<asynchronous suspension>
#14     generateKernelInternal.<anonymous closure> (package:front_end/src/kernel_generator_impl.dart:122:28)
<asynchronous suspension>
#15     withCrashReporting (package:front_end/src/fasta/crash.dart:122:24)
<asynchronous suspension>
#16     generateKernelInternal (package:front_end/src/kernel_generator_impl.dart:69:10)
<asynchronous suspension>
#17     generateKernel.<anonymous closure> (package:front_end/src/kernel_generator_impl.dart:49:18)
<asynchronous suspension>
#18     CompilerContext.runWithOptions.<anonymous closure> (package:front_end/src/fasta/compiler_context.dart:136:20)
<asynchronous suspension>
#19     CompilerContext.runInContext.<anonymous closure>.<anonymous closure> (package:front_end/src/fasta/compiler_context.dart:124:46)
#20     new Future.sync (dart:async/future.dart:222:31)
#21     CompilerContext.runInContext.<anonymous closure> (package:front_end/src/fasta/compiler_context.dart:124:19)
#22     _rootRun (dart:async/zone.dart:1124:13)
#23     _CustomZone.run (dart:async/zone.dart:1021:19)
#24     _runZoned (dart:async/zone.dart:1516:10)
#25     runZoned (dart:async/zone.dart:1463:12)
#26     CompilerContext.runInContext (package:front_end/src/fasta/compiler_context.dart:123:12)
#27     CompilerContext.runWithOptions (package:front_end/src/fasta/compiler_context.dart:134:10)
#28     generateKernel (package:front_end/src/kernel_generator_impl.dart:48:32)
<asynchronous suspension>
#29     kernelForModule (package:front_end/src/api_prototype/kernel_generator.dart:98:17)
<asynchronous suspension>
#30     SingleShotCompilerWrapper.compileInternal (file:///b/s/w/ir/cache/builder/src/third_party/dart/pkg/vm/bin/kernel_service.dart:338:17)
<asynchronous suspension>
#31     Compiler.compile.<anonymous closure> (file:///b/s/w/ir/cache/builder/src/third_party/dart/pkg/vm/bin/kernel_service.dart:162:45)
<asynchronous suspension>
#32     new Future.<anonymous closure> (dart:async/future.dart:174:37)
#33     _rootRun (dart:async/zone.dart:1120:38)
#34     _CustomZone.run (dart:async/zone.dart:1021:19)
#35     _CustomZone.runGuarded (dart:async/zone.dart:923:7)
#36     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:963:23)
#37     _rootRun (dart:async/zone.dart:1124:13)
#38     _CustomZone.run (dart:async/zone.dart:1021:19)
#39     _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:947:23)
#40     Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:21:15)
#41     _Timer._runTimers (dart:isolate-patch/timer_impl.dart:382:19)
#42     _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:416:5)
#43     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:172:12)


#0      Types.performNullabilityAwareSubtypeCheck (package:front_end/src/fasta/kernel/types.dart:218:7)
#1      Types.areTypeArgumentsOfSubtypeKernel (package:front_end/src/fasta/kernel/types.dart:244:30)
#2      IsInterfaceSubtypeOf.isInterfaceRelated (package:front_end/src/fasta/kernel/types.dart:355:10)
#3      Types.performNullabilityAwareSubtypeCheck (package:front_end/src/fasta/kernel/types.dart:109:26)
#4      Types.isSubtypeOfKernel (package:front_end/src/fasta/kernel/types.dart:47:26)
#5      ClassBuilderImpl._checkTypes (package:front_end/src/fasta/builder/class_builder.dart:1402:15)
#6      ClassBuilderImpl.checkMethodOverride (package:front_end/src/fasta/builder/class_builder.dart:1530:7)
#7      ClassBuilderImpl.checkOverride (package:front_end/src/fasta/builder/class_builder.dart:1002:30)
#8      DelayedOverrideCheck.check.callback (package:front_end/src/fasta/kernel/class_hierarchy_builder.dart:2047:20)
#9      DelayedOverrideCheck.check (package:front_end/src/fasta/kernel/class_hierarchy_builder.dart:2140:13)
#10     SourceLoader.checkOverrides (package:front_end/src/fasta/source/source_loader.dart:897:25)
#11     KernelTarget.buildOutlines.<anonymous closure> (package:front_end/src/fasta/kernel/kernel_target.dart:275:14)
<asynchronous suspension>
#12     withCrashReporting (package:front_end/src/fasta/crash.dart:122:24)
<asynchronous suspension>
#13     KernelTarget.buildOutlines (package:front_end/src/fasta/kernel/kernel_target.dart:249:12)
<asynchronous suspension>
#14     generateKernelInternal.<anonymous closure> (package:front_end/src/kernel_generator_impl.dart:122:28)
<asynchronous suspension>
#15     withCrashReporting (package:front_end/src/fasta/crash.dart:122:24)
<asynchronous suspension>
#16     generateKernelInternal (package:front_end/src/kernel_generator_impl.dart:69:10)
<asynchronous suspension>
#17     generateKernel.<anonymous closure> (package:front_end/src/kernel_generator_impl.dart:49:18)
<asynchronous suspension>
#18     CompilerContext.runWithOptions.<anonymous closure> (package:front_end/src/fasta/compiler_context.dart:136:20)
<asynchronous suspension>
#19     CompilerContext.runInContext.<anonymous closure>.<anonymous closure> (package:front_end/src/fasta/compiler_context.dart:124:46)
#20     new Future.sync (dart:async/future.dart:222:31)
#21     CompilerContext.runInContext.<anonymous closure> (package:front_end/src/fasta/compiler_context.dart:124:19)
#22     _rootRun (dart:async/zone.dart:1124:13)
#23     _CustomZone.run (dart:async/zone.dart:1021:19)
#24     _runZoned (dart:async/zone.dart:1516:10)
#25     runZoned (dart:async/zone.dart:1463:12)
#26     CompilerContext.runInContext (package:front_end/src/fasta/compiler_context.dart:123:12)
#27     CompilerContext.runWithOptions (package:front_end/src/fasta/compiler_context.dart:134:10)
#28     generateKernel (package:front_end/src/kernel_generator_impl.dart:48:32)
<asynchronous suspension>
#29     kernelForModule (package:front_end/src/api_prototype/kernel_generator.dart:98:17)
<asynchronous suspension>
#30     SingleShotCompilerWrapper.compileInternal (file:///b/s/w/ir/cache/builder/src/third_party/dart/pkg/vm/bin/kernel_service.dart:338:17)
<asynchronous suspension>
#31     Compiler.compile.<anonymous closure> (file:///b/s/w/ir/cache/builder/src/third_party/dart/pkg/vm/bin/kernel_service.dart:162:45)
<asynchronous suspension>
#32     new Future.<anonymous closure> (dart:async/future.dart:174:37)
#33     _rootRun (dart:async/zone.dart:1120:38)
#34     _CustomZone.run (dart:async/zone.dart:1021:19)
#35     _CustomZone.runGuarded (dart:async/zone.dart:923:7)
#36     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:963:23)
#37     _rootRun (dart:async/zone.dart:1124:13)
#38     _CustomZone.run (dart:async/zone.dart:1021:19)
#39     _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:947:23)
#40     Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:21:15)
#41     _Timer._runTimers (dart:isolate-patch/timer_impl.dart:382:19)
#42     _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:416:5)
#43     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:172:12)

我的发布规范如下:

name: benkyou
description: A new Flutter application to learn thanks to the SRS System.

# The following defines the version and build number for your application.
# A version number is three numbers separated by dots, like 1.2.43
# followed by an optional build number separated by a +.
# Both the version and the builder number may be overridden in flutter
# build by specifying --build-name and --build-number, respectively.
# In Android, build-name is used as versionName while build-number used as versionCode.
# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 1.0.0+1

environment:
  sdk: ">=2.2.2 <3.0.0"

dependencies:
  flutter:
    sdk: flutter
  sqflite:
  path:
  firebase_core: ^0.4.0+1
  firebase_auth: ^0.14.0+5
  firebase_database: ^3.0.7
  floor: ^0.8.0
  onesignal_flutter: ^2.0.0
  # Add the dependency for the FlutterFire plugin for Google Analytics
  firebase_analytics: ^4.0.2
  flutter_launcher_icons:

  # Add the dependencies for any other Firebase products you want to use in your app
  # For example, to use Firebase Authentication and Cloud Firestore
#  firebase_auth: ^0.11.1+3
  cloud_firestore: any
  flutter_tts:
  path_provider: ^0.4.1


  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^0.1.2
  flutter_local_notifications:
  http: ^0.12.0


dev_dependencies:
  flutter_driver:
    sdk: flutter
  flutter_test:
    sdk: flutter
  test: any
  floor_generator: ^0.9.0
  build_runner: ^1.6.7

#dependency_overrides:
#  image: 2.0.7

#flutter_icons:
##  image_path: "resources/icon/app_icon.png"
#  android: true
#  ios: true

# 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:

  # The following line ensures that the Material Icons font is
  # included with your application, so that you can use the icons in
  # the material Icons class.
  uses-material-design: true

  # To add assets to your application, add an assets section, like this:
  assets:
    - resources/imgs/favorite_empty.png
    - resources/imgs/favorite_full.png
    - resources/imgs/history.png
    - resources/imgs/home.png
    - resources/imgs/add.png
    - resources/imgs/delete.png
    - resources/imgs/translate.png
    - resources/imgs/arrow_forward.png
    - resources/imgs/arrow_forward_black.png
    - resources/imgs/arrow_backward_black.png
    - resources/imgs/waiting_cards.png
    - resources/imgs/sound.png
    - resources/imgs/mute.png
    - resources/imgs/add_photo.png
    - resources/imgs/arrow_back.png
    - resources/icon/app_icon.png
    - lib/fixtures/dev/decks.json
    - lib/fixtures/dev/cards.json
    - lib/fixtures/dev/answers.json

我将非常感谢任何帮助:D

解决方案: 就像@Darshan所说的那样,我们只需要切换到包含修复程序的Dart版本即可。以下几行代码帮助我解决了这一问题:

brew upgrade --force dart -- --devel
brew switch dart 2.7.0-dev.2.1

1 个答案:

答案 0 :(得分:1)

解决方案:@Darshan所述,我们只需要切换到包含修复程序的飞镖版本即可。以下几行代码帮助我解决了这一问题:

brew upgrade --force dart -- --devel
brew switch dart 2.7.0-dev.2.1