Open Aman-Malhotra opened 3 years ago
Version used
easy_localization: ^3.0.0-dev.1
The Working Scenario
Code to replicate non error scenario
import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); testWidgets( 'Sample fail test', (WidgetTester tester) async { await tester.pumpWidget(const MakeTestableApp()); await tester.pumpAndSettle(); await Future<void>.delayed(const Duration(seconds: 2)); await tester.tap(find.byKey(const ValueKey('SignIn'))); await tester.pump(); await Future<void>.delayed(const Duration(seconds: 2)); }, ); } class MakeTestableApp extends StatelessWidget { const MakeTestableApp(); @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( body: Center( child: FlatButton( key: const ValueKey('SignIn'), onPressed: () { print('Button Tap Happened'); }, child: const Text('Hello'), ), ), ), ); } }
The Error Scenario
Code to replicate error scenario
import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; Future<void> main() async { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); EasyLocalization.ensureInitialized(); // await Future<void>.delayed(const Duration(seconds: 10)); testWidgets('Sample fail test', (WidgetTester tester) async { await tester.pumpWidget( EasyLocalization( supportedLocales: const [Locale('en', 'US')], fallbackLocale: const Locale('en', 'US'), path: 'assets/langs', child: const MakeTestableApp(), ), ); await tester.pumpAndSettle(); await Future<void>.delayed(const Duration(seconds: 2)); await tester.tap(find.byKey(const ValueKey('SignIn'))); await tester.pump(); await Future<void>.delayed(const Duration(seconds: 2)); }); } class MakeTestableApp extends StatelessWidget { const MakeTestableApp(); @override Widget build(BuildContext context) { return Builder(builder: (context) { return MaterialApp( home: Scaffold( body: Center( child: FlatButton( key: const ValueKey('SignIn'), onPressed: () { print('Button Tap Happened'); }, child: Text(tr('signIn')), )))); }); } }
Error Stack:
✓ Built build/app/outputs/flutter-apk/app-debug.apk. Installing build/app/outputs/flutter-apk/app.apk... 0.8s I/flutter (17660): Observatory listening on http://127.0.0.1:39147/Y00q_1_58GY=/ VMServiceFlutterDriver: Connecting to Flutter application at http://127.0.0.1:54062/Y00q_1_58GY=/ VMServiceFlutterDriver: Isolate found with number: 3784770362147883 VMServiceFlutterDriver: Isolate is paused at start. VMServiceFlutterDriver: Attempting to resume isolate I/flutter (17660): 00:00 +0: Sample fail test VMServiceFlutterDriver: Connected to Flutter application. I/flutter (17660): (The following exception is now available via WidgetTester.takeException:) I/flutter (17660): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════ I/flutter (17660): The following NoSuchMethodError was thrown building Builder(dirty): I/flutter (17660): The method 'get' was called on null. I/flutter (17660): Receiver: null I/flutter (17660): Tried calling: get("signIn") I/flutter (17660): I/flutter (17660): The relevant error-causing widget was: I/flutter (17660): Builder I/flutter (17660): file:///Users/aman-malhotra/Desktop/Holmusk/meadow/meadow/integration_test/sign_in_test.dart:149:12 I/flutter (17660): I/flutter (17660): When the exception was thrown, this was the stack: I/flutter (17660): #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:51:5) I/flutter (17660): #1 Localization._resolve (package:easy_localization/src/localization.dart:138:36) I/flutter (17660): #2 Localization.tr (package:easy_localization/src/localization.dart:46:13) I/flutter (17660): #3 tr (package:easy_localization/src/public.dart:41:12) I/flutter (17660): #4 MakeTestableApp.build.<anonymous closure> (file:///Users/aman-malhotra/Desktop/Holmusk/meadow/meadow/integration_test/sign_in_test.dart:159:2 5) I/flutter (17660): #5 Builder.build (package:flutter/src/widgets/basic.dart:7183:48) I/flutter (17660): #6 StatelessElement.build (package:flutter/src/widgets/framework.dart:4701:28) I/flutter (17660): #7 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4627:15) I/flutter (17660): #8 Element.rebuild (package:flutter/src/widgets/framework.dart:4343:5) I/flutter (17660): #9 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4606:5) I/flutter (17660): #10 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4601:5) I/flutter (17660): ... Normal element mounting (21 frames) I/flutter (17660): #31 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3569:14) I/flutter (17660): #32 Element.updateChild (package:flutter/src/widgets/framework.dart:3324:20) I/flutter (17660): #33 RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets/binding.dart:1252:16) I/flutter (17660): #34 RenderObjectToWidgetElement.update (package:flutter/src/widgets/binding.dart:1230:5) I/flutter (17660): #35 RenderObjectToWidgetElement.performRebuild (package:flutter/src/widgets/binding.dart:1244:7) I/flutter (17660): #36 Element.rebuild (package:flutter/src/widgets/framework.dart:4343:5) I/flutter (17660): #37 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2730:33) I/flutter (17660): #38 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:913:20) I/flutter (17660): #39 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:302:5) I/flutter (17660): #40 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1117:15) I/flutter (17660): #41 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1055:9) I/flutter (17660): #42 LiveTestWidgetsFlutterBinding.handleDrawFrame (package:flutter_test/src/binding.dart:1447:13) I/flutter (17660): #43 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:971:5) I/flutter (17660): #47 _invoke (dart:ui/hooks.dart:251:10) I/flutter (17660): #48 _drawFrame (dart:ui/hooks.dart:209:3) I/flutter (17660): (elided 3 frames from dart:async) I/flutter (17660): I/flutter (17660): ═══════════════════════════════════════════════════════════════════════════════════════════════════ ═ I/flutter (17660): (If WidgetTester.takeException is called, the above exception will be ignored. If it is not, then the above exception will be dumped when another exception is caught by the framework or when the test ends, whichever happens first, and then the test will fail due to having not caught or expected the exception.) I/flutter (17660): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════ I/flutter (17660): The following NoSuchMethodError was thrown building Builder(dirty): I/flutter (17660): The method 'get' was called on null. I/flutter (17660): Receiver: null I/flutter (17660): Tried calling: get("signIn") I/flutter (17660): I/flutter (17660): The relevant error-causing widget was: I/flutter (17660): Builder I/flutter (17660): file:///Users/aman-malhotra/Desktop/Holmusk/meadow/meadow/integration_test/sign_in_test.dart:149:12 I/flutter (17660): I/flutter (17660): When the exception was thrown, this was the stack: I/flutter (17660): #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:51:5) I/flutter (17660): #1 Localization._resolve (package:easy_localization/src/localization.dart:138:36) I/flutter (17660): #2 Localization.tr (package:easy_localization/src/localization.dart:46:13) I/flutter (17660): #3 tr (package:easy_localization/src/public.dart:41:12) I/flutter (17660): #4 MakeTestableApp.build.<anonymous closure> (file:///Users/aman-malhotra/Desktop/Holmusk/meadow/meadow/integration_test/sign_in_test.dart:159:2 5) I/flutter (17660): #5 Builder.build (package:flutter/src/widgets/basic.dart:7183:48) I/flutter (17660): #6 StatelessElement.build (package:flutter/src/widgets/framework.dart:4701:28) I/flutter (17660): #7 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4627:15) I/flutter (17660): #8 Element.rebuild (package:flutter/src/widgets/framework.dart:4343:5) I/flutter (17660): #9 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4606:5) I/flutter (17660): #10 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4601:5) I/flutter (17660): ... Normal element mounting (21 frames) I/flutter (17660): #31 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3569:14) I/flutter (17660): #32 Element.updateChild (package:flutter/src/widgets/framework.dart:3324:20) I/flutter (17660): #33 RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets/binding.dart:1252:16) I/flutter (17660): #34 RenderObjectToWidgetElement.update (package:flutter/src/widgets/binding.dart:1230:5) I/flutter (17660): #35 RenderObjectToWidgetElement.performRebuild (package:flutter/src/widgets/binding.dart:1244:7) I/flutter (17660): #36 Element.rebuild (package:flutter/src/widgets/framework.dart:4343:5) I/flutter (17660): #37 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2730:33) I/flutter (17660): #38 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:913:20) I/flutter (17660): #39 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:302:5) I/flutter (17660): #40 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1117:15) I/flutter (17660): #41 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1055:9) I/flutter (17660): #42 LiveTestWidgetsFlutterBinding.handleDrawFrame (package:flutter_test/src/binding.dart:1447:13) I/flutter (17660): #43 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:971:5) I/flutter (17660): #47 _invoke (dart:ui/hooks.dart:251:10) I/flutter (17660): #48 _drawFrame (dart:ui/hooks.dart:209:3) I/flutter (17660): (elided 3 frames from dart:async) I/flutter (17660): I/flutter (17660): ═══════════════════════════════════════════════════════════════════════════════════════════════════ ═ I/flutter (17660): ══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════ I/flutter (17660): The following StateError was thrown running a test: I/flutter (17660): Bad state: No element I/flutter (17660): I/flutter (17660): When the exception was thrown, this was the stack: I/flutter (17660): #0 Iterable.single (dart:core/iterable.dart:558:25) I/flutter (17660): #1 WidgetController._getElementPoint (package:flutter_test/src/controller.dart:818:47) I/flutter (17660): #2 WidgetController.getCenter (package:flutter_test/src/controller.dart:790:12) I/flutter (17660): #3 WidgetController.tap (package:flutter_test/src/controller.dart:259:18) I/flutter (17660): #4 main.<anonymous closure> (file:///Users/aman-malhotra/Desktop/Holmusk/meadow/meadow/integration_test/sign_in_test.dart:138:1 8) I/flutter (17660): <asynchronous suspension> I/flutter (17660): #5 main.<anonymous closure> (file:///Users/aman-malhotra/Desktop/Holmusk/meadow/meadow/integration_test/sign_in_test.dart) I/flutter (17660): #6 testWidgets.<anonymous closure>.<anonymous closure> (package:flutter_test/src/widget_tester.dart:146:29) I/flutter (17660): <asynchronous suspension> I/flutter (17660): #7 testWidgets.<anonymous closure>.<anonymous closure> (package:flutter_test/src/widget_tester.dart) I/flutter (17660): #8 TestWidgetsFlutterBinding._runTestBody (package:flutter_test/src/binding.dart:784:19) I/flutter (17660): <asynchronous suspension> I/flutter (17660): #11 TestWidgetsFlutterBinding._runTest (package:flutter_test/src/binding.dart:764:14) I/flutter (17660): #12 LiveTestWidgetsFlutterBinding.runTest (package:flutter_test/src/binding.dart:1592:12) I/flutter (17660): #13 IntegrationTestWidgetsFlutterBinding.runTest (package:integration_test/integration_test.dart:194:17) I/flutter (17660): #14 testWidgets.<anonymous closure> (package:flutter_test/src/widget_tester.dart:138:24) I/flutter (17660): #15 Declarer.test.<anonymous closure>.<anonymous closure> (package:test_api/src/backend/declarer.dart:175:19) I/flutter (17660): <asynchronous suspension> I/flutter (17660): #16 Declarer.test.<anonymous closure>.<anonymous closure> (package:test_api/src/backend/declarer.dart) I/flutter (17660): #21 Declarer.test.<anonymous closure> (package:test_api/src/backend/declarer.dart:173:13) I/flutter (17660): #22 Invoker.waitForOutstandingCallbacks.<anonymous closure> (package:test_api/src/backend/invoker.dart:231:15) I/flutter (17660): #27 Invoker.waitForOutstandingCallbacks (package:test_api/src/backend/invoker.dart:228:5) I/flutter (17660): #28 Invoker._onRun.<anonymous closure>.<anonymous closure>.<anonymous closure> (package:test_api/src/backend/invoker.dart:383:17) I/flutter (17660): <asynchronous suspension> I/flutter (17660): #29 Invoker._onRun.<anonymous closure>.<anonymous closure>.<anonymous closure> (package:test_api/src/backend/invoker.dart) I/flutter (17660): #34 Invoker._onRun.<anonymous closure>.<anonymous closure> (package:test_api/src/backend/invoker.dart:370:9) I/flutter (17660): #35 Invoker._guardIfGuarded (package:test_api/src/backend/invoker.dart:415:15) I/flutter (17660): #36 Invoker._onRun.<anonymous closure> (package:test_api/src/backend/invoker.dart:369:7) I/flutter (17660): #43 Invoker._onRun (package:test_api/src/backend/invoker.dart:368:11) I/flutter (17660): #44 LiveTestController.run (package:test_api/src/backend/live_test_controller.dart:153:11) I/flutter (17660): (elided 31 frames from dart:async and package:stack_trace) I/flutter (17660): I/flutter (17660): The test description was: I/flutter (17660): Sample fail test I/flutter (17660): ═══════════════════════════════════════════════════════════════════════════════════════════════════ ═ I/flutter (17660): ══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════ I/flutter (17660): The following message was thrown: I/flutter (17660): Multiple exceptions (2) were detected during the running of the current test, and at least one was I/flutter (17660): unexpected. I/flutter (17660): ═══════════════════════════════════════════════════════════════════════════════════════════════════ ═ I/flutter (17660): 00:02 +0: Sample fail test [E] I/flutter (17660): Test failed. See exception logs above. I/flutter (17660): The test description was: Sample fail test I/flutter (17660): I/flutter (17660): 00:02 +0 -1: (tearDownAll) Failure Details: Failure in method: Sample fail test ══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞═════════════════ The following message was thrown: Multiple exceptions (2) were detected during the running of the current test, and at least one was unexpected. ═════════════════════════════════════════════════════════════════ end of failure 1 I/flutter (17660): 00:02 +1 -1: Some tests failed. Stopping application instance. Driver tests failed: 1 make: *** [drive] Error 1
@Aman-Malhotra do you found any solution?
@Aman-Malhotra is this issue still up to date?
Version used
The Working Scenario
Code to replicate non error scenario
The Error Scenario
Code to replicate error scenario
Error Stack: