Flutter 应该如何使用颤振web_测试包在颤振web项目上运行单元测试?
我已经在网上探索了一段时间,一切都很好 但是我在为颤振web组件创建单元测试(例如无状态小部件测试)时遇到了问题 我发现有一个名为flatter_web_测试的软件包,但它似乎没有很好地工作 测试代码如下: 我已经安装了颤振web演示项目使用的测试包:Flutter 应该如何使用颤振web_测试包在颤振web项目上运行单元测试?,flutter,flutter-dependencies,flutter-test,flutter-web,Flutter,Flutter Dependencies,Flutter Test,Flutter Web,我已经在网上探索了一段时间,一切都很好 但是我在为颤振web组件创建单元测试(例如无状态小部件测试)时遇到了问题 我发现有一个名为flatter_web_测试的软件包,但它似乎没有很好地工作 测试代码如下: 我已经安装了颤振web演示项目使用的测试包:颤振web\u测试 // import fluter import 'package:flutter_web_test/flutter_web_test.dart'; // a stateless widget is imported import
颤振web\u测试
// import fluter
import 'package:flutter_web_test/flutter_web_test.dart';
// a stateless widget is imported
import 'package:ies2.pms/views/main.dart';
void main() {
testWidgets(
'test whether ',
(WidgetTester tester) async {
// very simple code, create widget in test
await tester.pumpWidget(CYFCustomView(name: 'aaa'));
print('aaa');
},
);
}
然后我开始运行颤振测试
// import fluter
import 'package:flutter_web_test/flutter_web_test.dart';
// a stateless widget is imported
import 'package:ies2.pms/views/main.dart';
void main() {
testWidgets(
'test whether ',
(WidgetTester tester) async {
// very simple code, create widget in test
await tester.pumpWidget(CYFCustomView(name: 'aaa'));
print('aaa');
},
);
}
然后我收到了以下错误:
Failed to load test harness. Are you missing a dependency on flutter_test?
00:05 +0: loading /Users/yifan.chen/ByteDanceIES/pms/test/main_test.dart Unhandled exception:
FileSystemException(uri=org-dartlang-untranslatable-uri:package%3Aflutter_test%2Fflutter_test.dart; message=StandardFileSystem only supports file:* and
data:* URIs)
#0 StandardFileSystem.entityForUri (package:front_end/src/api_prototype/standard_file_system.dart:33:7)
#1 asFileUri (package:vm/kernel_front_end.dart:601:37)
<asynchronous suspension>
#2 FrontendCompiler._outputDependenciesDelta (package:vm/frontend_server.dart:401:39)
<asynchronous suspension>
#3 FrontendCompiler.compile (package:vm/frontend_server.dart:375:13)
<asynchronous suspension>
#4 _FlutterFrontendCompiler.compile (package:frontend_server/server.dart:31:22)
<asynchronous suspension>
#5 listenAndCompile.<anonymous closure> (package:vm/frontend_server.dart:736:26)
<asynchronous suspension>
#6 _RootZone.runUnaryGuarded (dart:async/zone.dart:1314:10)
#7 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:336:11)
#8 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:263:7)
#9 _SinkTransformerStreamSubscription._add (dart:async/stream_transformers.dart:68:11)
#10 _EventSinkWrapper.add (dart:async/stream_transformers.dart:15:11)
#11 _StringAdapterSink.add (dart:convert/string_conversion.dart:236:11)
#12 _LineSplitterSink._addLines (dart:convert/line_splitter.dart:150:13)
#13 _LineSplitterSink.addSlice (dart:convert/line_splitter.dart:125:5)
#14 StringConversionSinkMixin.add (dart:convert/string_conversion.dart:163:5)
#15 _SinkTransformerStreamSubscription._handleData (dart:async/stream_transformers.dart:120:24)
#16 _RootZone.runUnaryGuarded (dart:async/zone.dart:1314:10)
#17 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:336:11)
#18 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:263:7)
#19 _SinkTransformerStreamSubscription._add (dart:async/stream_transformers.dart:68:11)
#20 _EventSinkWrapper.add (dart:async/stream_transformers.dart:15:11)
#21 _StringAdapterSink.add (dart:convert/string_conversion.dart:236:11)
#22 _StringAdapterSink.addSlice (dart:convert/string_conversion.dart:241:7)
#23 _Utf8ConversionSink.addSlice (dart:convert/string_conversion.dart:312:20)
#24 _Utf8ConversionSink.add (dart:convert/string_conversion.dart:305:5)
#25 _ConverterStreamEventSink.add (dart:convert/chunked_conversion.dart:72:18)
#26 _SinkTransformerStreamSubscription._handleData (dart:async/stream_transformers.dart:120:24)
#27 _RootZone.runUnaryGuarded (dart:async/zone.dart:1314:10)
#28 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:336:11)
#29 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:263:7)
#30 _SyncStreamController._sendData (dart:async/stream_controller.dart:764:19)
#31 _StreamController._add (dart:async/stream_controller.dart:640:7)
#32 _StreamController.add (dart:async/stream_controller.dart:586:5)
#33 _Socket._onData (dart:io-patch/socket_patch.dart:1786:41)
#34 _RootZone.runUnaryGuarded (dart:async/zone.dart:1314:10)
#35 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:336:11)
#36 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:263:7)
#37 _SyncStreamController._sendData (dart:async/stream_controller.dart:764:19)
#38 _StreamController._add (dart:async/stream_controller.dart:640:7)
#39 _StreamController.add (dart:async/stream_controller.dart:586:5)
#40 new _RawSocket.<anonymous closure> (dart:io-patch/socket_patch.dart:1335:33)
#41 _NativeSocket.issueReadEvent.issue (dart:io-patch/socket_patch.dart:856:14)
#42 _microtaskLoop (dart:async/schedule_microtask.dart:41:21)
#43 _startMicrotaskLoop (dart:async/schedule_microtask.dart:50:5)
#44 _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:116:13)
#45 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:173:5)
00:05 +0 -1: loading /Users/yifan.chen/ByteDanceIES/pms/test/main_test.dart [E]
未能加载测试线束。您是否缺少对颤振测试的依赖?
00:05+0:loading/Users/yifan.chen/BYTEDANCIES/pms/test/main_test.dart未处理异常:
FileSystemException(uri=org dartlang不可翻译的uri:package%3Afflight\u test%2Afflight\u test.dart;message=StandardFileSystem仅支持文件:*和
数据:*URI)
#0 StandardFileSystem.entityForUri(包:前端/src/api\u原型/standard\u文件\u系统。dart:33:7)
#1 asFileUri(包:vm/kernel\u front\u end.dart:601:37)
#2前端编译器。_outputDependenciesDelta(包:vm/frontend_服务器。dart:401:39)
#3 FrontendCompiler.compile(包:vm/frontend_server.dart:375:13)
#4\u frontendcompiler.compile(包:frontend\u server/server.dart:31:22)
#5.编译。(软件包:vm/frontend_服务器。dart:736:26)
#6_RootZone.runUnaryGuarded(dart:async/zone.dart:1314:10)
#7 _BufferingStreamSubscription._sendData(dart:async/stream\u impl.dart:336:11)
#8 _BufferingStreamSubscription._add(dart:async/stream\u impl.dart:263:7)
#9 SinkTransformersStreamSubscription.add(dart:async/stream_transformers.dart:68:11)
#10\u EventSinkWrapper.add(dart:async/stream\u transformers.dart:15:11)
#11_StringAdapterSink.add(dart:convert/string_convertion.dart:236:11)
#12 _LineSplitterSink._addLines(省道:转换/线拆分器。省道:150:13)
#13 _LineSplitterSink.addSlice(省道:转换/线拆分器。省道:125:5)
#14 StringConversionSinkMixin.add(dart:conversion/string\u conversion.dart:163:5)
#15 SinkTransformersStreamSubscription.handleData(dart:async/stream_transformers.dart:120:24)
#16_RootZone.runUnaryGuarded(dart:async/zone.dart:1314:10)
#17 _BufferingStreamSubscription._sendData(dart:async/stream\u impl.dart:336:11)
#18 _BufferingStreamSubscription._add(dart:async/stream\u impl.dart:263:7)
#19 SinkTransformersStreamSubscription.add(dart:async/stream_transformers.dart:68:11)
#20\u EventSinkWrapper.add(dart:async/stream\u transformers.dart:15:11)
#21 _StringAdapterSink.add(dart:convert/string_convertion.dart:236:11)
#22\u StringAdapterSink.addSlice(dart:convert/string\u conversion.dart:241:7)
#23\u Utf8ConversionSink.addSlice(dart:conversion/string\u conversion.dart:312:20)
#24\u Utf8ConversionSink.add(dart:conversion/string\u conversion.dart:305:5)
#25_ConverterStreamEventSink.add(dart:convert/chunked_convertion.dart:72:18)
#26 SinkTransformersStreamSubscription.handleData(dart:async/stream_transformers.dart:120:24)
#27_RootZone.runUnaryGuarded(dart:async/zone.dart:1314:10)
#28 _BufferingStreamSubscription._sendData(dart:async/stream\u impl.dart:336:11)
#29 _BufferingStreamSubscription._add(dart:async/stream\u impl.dart:263:7)
#30 \u SyncStreamController.\u sendData(dart:async/stream\u controller.dart:764:19)
#31 _StreamController._add(dart:async/stream_controller.dart:640:7)
#32\u StreamController.add(dart:async/stream\u controller.dart:586:5)
#33插口数据(dart:io补丁/插口补丁。dart:1786:41)
#34_RootZone.runUnaryGuarded(dart:async/zone.dart:1314:10)
#35 _BufferingStreamSubscription._sendData(dart:async/stream\u impl.dart:336:11)
#36 _BufferingStreamSubscription._add(dart:async/stream\u impl.dart:263:7)
#37\u SyncStreamController.\u sendData(dart:async/stream\u controller.dart:764:19)
#38 _StreamController._add(dart:async/stream_controller.dart:640:7)
#39_StreamController.add(dart:async/stream_controller.dart:586:5)
#40个新插座。(省道:io补丁/插座补丁。省道:1335:33)
#41 _NativeSocket.issueReadEvent.issue(dart:io补丁/socket_补丁。dart:856:14)
#42_微任务循环(dart:async/schedule_微任务。dart:41:21)
#43开始微任务循环(dart:async/schedule\u microtask.dart:50:5)
#44 _runPendingImmediateCallback(dart:隔离补丁/隔离补丁。dart:116:13)
#45 RawReceivePortImpl.handleMessage(dart:隔离补丁/隔离补丁。dart:173:5)
00:05+0-1:loading/Users/yifan.chen/ByteDanceIES/pms/test/main_test.dart[E]
我在Stackoverflow中找不到任何解决方案。而Flatter_web目前还没有公开的问题。我只是在颤振中发现了一个问题,即颤振测试不支持颤振web项目
我应该如何在Flatter_web项目上运行单元测试?他们已经建立了Flatter\u web\u测试包,所以它应该是功能性的。你应该移动到Flatter 1.9,Flatter\u web已被弃用,较短的方法是将Flatter更新到1.9,创建一个新的项目并在其上激活web:
Flatter run-d chrome
现在你可以用Flatter build web
进行构建了。我希望它能解决您的问题。谢谢,我将试一试