invertase / spec

✅ A streamlined testing framework for Dart & Flutter.
https://docs.page/invertase/spec
Apache License 2.0
302 stars 18 forks source link

Error running spec on Windows #14

Open chimon2000 opened 2 years ago

chimon2000 commented 2 years ago
Unhandled exception:
ProcessException: The system cannot find the file specified.

  Command: flutter test --reporter=json --no-pub
#0      _ProcessImpl._start (dart:io-patch/process_patch.dart:401:33)
#1      Process.start (dart:io-patch/process_patch.dart:38:20)
#2      flutterTest.<anonymous closure> (package:dart_test_adapter/src/test_runner.dart:16:19)
#3      _parseTestJsonOutput.<anonymous closure> (package:dart_test_adapter/src/test_runner.dart:64:30)
#4      _parseTestJsonOutput.<anonymous closure> (package:dart_test_adapter/src/test_runner.dart:63:25)
#5      _runGuarded (dart:async/stream_controller.dart:773:24)
#6      _StreamController._subscribe.<anonymous closure> (dart:async/stream_controller.dart:651:7)
#7      _BufferingStreamSubscription._guardCallback (dart:async/stream_impl.dart:417:13)
#8      _StreamController._subscribe (dart:async/stream_controller.dart:650:18)
#9      _ControllerStream._createSubscription (dart:async/stream_controller.dart:786:19)
#10     _StreamImpl.listen (dart:async/stream_impl.dart:473:9)
#11     new TestEventsNotifier.<anonymous closure> (package:spec_cli/src/dart_test.dart:92:25)
<asynchronous suspension>

Steps to reproduce:

Currently using Flutter 2.10 but I was using the last stable version and getting the same error.

rrousselGit commented 2 years ago

Are the commands flutter and dart available in your terminal? This error make it seems like one of those commands is missing

chimon2000 commented 2 years ago

@rrousselGit I can confirm that both are available:

dart --version && flutter --version
Dart SDK version: 2.16.0 (stable) (Mon Jan 31 15:28:59 2022 +0100) on "windows_x64"
Flutter 2.10.0 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 5f105a6ca7 (3 days ago) • 2022-02-01 14:15:42 -0800
Engine • revision 776efd2034
Tools • Dart 2.16.0 • DevTools 2.9.2
Salakar commented 2 years ago

I have a feeling from when I did Melos that runInShell and includeParentEnvironment may need to be set to true on Process.start for Windows to work properly and pickup flutter/dart from path

rrousselGit commented 2 years ago

Wouldn't that slow things quite a bit? Since we'd effectively encapsulate the process in a shell for no reason

mrverdant13 commented 2 years ago

I can confirm that using runInShell: true fixes the issue for Windows. includeParentEnvironment is true by default.

Besides that, we might also use cmd /c flutter test ..., but it would technically have the same behaviour, and it would be a cumbersome implementation just for the Windows platform.

Another approach is to explicitly use flutter.bat (just for Windows ofc), which would avoid spawning the execution through an OS shell. It worked for me, but I am not entirely sure if it will be enough to overcome this issue.

kimathi-phil commented 2 years ago

Still having this problem

Goddchen commented 1 month ago

This is still a thing unfortunately...