Bri*_*Kan 3 testing environment-variables flutter flutter-test
首先,我确实检查了这一点,但没有结果。\n如何从测试中访问 Flutter 环境变量?
\nimport \'package:flutter/widgets.dart\';\nimport \'package:flutter_test/flutter_test.dart\';\n\nimport \'package:integration_test/integration_test.dart\';\nimport \'package:main.dart\' as app;\n\nimport \'package:mockito/annotations.dart\';\nimport \'package:firebase_auth/firebase_auth.dart\' as firebaseauth;\n\nimport \'package:flutter_dotenv/flutter_dotenv.dart\';\n\nimport \'basic_app_test.mocks.dart\';\n\n\n@GenerateMocks([firebaseauth.FirebaseAuth])\nvoid main() async {\n TestWidgetsFlutterBinding.ensureInitialized();\n await DotEnv().load(fileName: ".env");\n\n group(\'Login Page Tests\', () {\n testWidgets(\'Empty Login Box\', (WidgetTester tester) async {\n app.main();\n\n await tester.pumpAndSettle(Duration(seconds: 3));\n\n expect(find.byKey(Key(\'loginButton\')), findsOneWidget);\n\n final Finder loginButton = find.byKey(Key(\'loginButton\'));\n\n await tester.tap(loginButton);\n\n await tester.pumpAndSettle();\n\n expect(\n find.text(\n \'Something went wrong. Please check your email and password and try again.\'),\n findsOneWidget);\n });\n\n testWidgets(\'Email Login - Proper Credentials\',\n (WidgetTester tester) async {\n\n app.main();\n\n // Wait for app to reach the login page\n await tester.pumpAndSettle(Duration(seconds: 3));\n\n final Finder emailBox = find.byKey(Key(\'emailBox\'));\n final Finder passwordBox = find.byKey(Key(\'passwordBox\'));\n final Finder loginButton = find.byKey(Key(\'loginButton\'));\n final Finder welcomeHeader = find.byKey(Key(\'welcomeHeader\'));\n\n var testPassword = DotEnv().env[\'TEST_PASSWORD\'];\n await tester.enterText(passwordBox, testPassword);\n\n expect(find.byKey(Key(\'loginButton\')), findsOneWidget);\n await tester.tap(loginButton);\n await tester.pumpAndSettle(Duration(seconds: 5));\n\n // SHOULD BE EXPECTING A WIDGET IN THE NEXT WINDOW\n expect(welcomeHeader, findsOneWidget);\n });\n });\n}\n\nRun Code Online (Sandbox Code Playgroud)\n我有一组测试。第一个运行得很好。第二个在创建 testPassword 变量时遇到错误。
\n这是错误:
\n\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa1 EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK \xe2\x95\x9e\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\nThe following NotInitializedError was thrown running a test:\nInstance of \'NotInitializedError\'\n\nWhen the exception was thrown, this was the stack:\n#0 DotEnv.env (package:flutter_dotenv/src/dotenv.dart:42:7)\n#1 main.<anonymous closure>.<anonymous closure> (file:///D:/WEBDEV/EndevStudios/MedicalApp/gshDevWork/medical-app-frontend/integration_test/basic_app_test.dart:52:31)\n<asynchronous suspension>\n<asynchronous suspension>\n(elided one frame from package:stack_trace)\n\nThe test description was:\n Email Login - Proper Credentials\nRun Code Online (Sandbox Code Playgroud)\n该.env文件位于根目录。
我的pubspec.yaml文件:
dependencies:\n flutter_dotenv: ^5.0.2\n\nflutter:\n #Integration Testing\n - .env\nRun Code Online (Sandbox Code Playgroud)\n我尝试过的: \n大多数解决方案都涉及TestWidgetsFlutterBinding.ensureInitialized();or IntegrationTestWidgetsFlutterBinding.ensureInitialized();以及 和await DotEnv().load(fileName: ".env");的一些变体await DotEnv().load();。
预先感谢任何可以提供帮助的人。
\n小智 5
你需要从
await DotEnv().load(fileName: ".env");
Run Code Online (Sandbox Code Playgroud)
到:
await dotenv.load(fileName: ".env");
Run Code Online (Sandbox Code Playgroud)
使用最新的库。
| 归档时间: |
|
| 查看次数: |
5087 次 |
| 最近记录: |