patrol
patrol copied to clipboard
Lack of error description in case of incorrect JAVA_HOME path
Steps to reproduce
Set JAVA_HOME to incorrect path, e.g.
export JAVA_HOME="foo/bar/foobar"
export PATH=$JAVA_HOME/bin:$PATH
run patrol test -t [sample_test].dart
Actual results
Throws an error ( as it is supposed to ), but lacks proper error message
✗ Failed to build apk with entrypoint test_bundle.dart (Gradle build failed with code 1) (16ms)
Exception: Gradle build failed with code 1
Running the above command with --verbose
clearly indicates that this is an issue with JAVA_HOME
:
: ERROR: JAVA_HOME is set to an invalid directory: foo/bar/foobar
:
: Please set the JAVA_HOME variable in your environment to match the
: location of your Java installation.
:
Environment variable issues are quite easy to make, I believe it would be better to output that error ( in more user-friendly form ) on run failure without --verbose
flag
Logs
Logs
Verbose mode enabled. More logs will be printed.
$ flutter --suppress-analytics --no-version-check pub deps --style=list
Received 1 test target(s)
Received test target: /Users/wiktorzajac/Development/[test]_test.dart
Generated entrypoint /Users/wiktorzajac/Development/test_bundle.dart with 1 bundled test(s)
Received Android flavor: tst
Received iOS flavor: tst
$ flutter --no-version-check --suppress-analytics devices --machine
No device specified, using the first one (emulator-5554)
Received 1 device(s) to run on
Received device: emulator-5554
Received 16 --dart-define(s) (7 custom, 9 internal)
...
• Building apk with entrypoint test_bundle.dart...
$ ./gradlew :app:assembleTstDebug -Ptarget=/Users/wiktorzajac/Development/test_bundle.dart -Pdart-defines= [ ... ]
:
: ERROR: JAVA_HOME is set to an invalid directory: foo/bar/foobar
:
: Please set the JAVA_HOME variable in your environment to match the
: location of your Java installation.
:
✗ Failed to build apk with entrypoint test_bundle.dart (Gradle build failed with code 1) (16ms)
Exception: Gradle build failed with code 1
#0 AndroidTestBackend.build.<anonymous closure> (package:patrol_cli/src/android/android_test_backend.dart:67:9)
<asynchronous suspension>
#1 DisposeScope.run (package:dispose_scope/src/dispose_scope.dart:46:7)
<asynchronous suspension>
#2 AndroidTestBackend.build (package:patrol_cli/src/android/android_test_backend.dart:42:5)
<asynchronous suspension>
#3 TestCommand._build (package:patrol_cli/src/commands/test.dart:292:7)
<asynchronous suspension>
#4 TestCommand.run (package:patrol_cli/src/commands/test.dart:226:5)
<asynchronous suspension>
#5 CommandRunner.runCommand (package:args/command_runner.dart:212:13)
<asynchronous suspension>
#6 PatrolCommandRunner.runCommand (package:patrol_cli/src/runner/patrol_command_runner.dart:348:18)
<asynchronous suspension>
#7 PatrolCommandRunner.run (package:patrol_cli/src/runner/patrol_command_runner.dart:292:18)
<asynchronous suspension>
#8 patrolCommandRunner (package:patrol_cli/src/runner/patrol_command_runner.dart:70:20)
<asynchronous suspension>
#9 main (file:///Users/wiktorzajac/.pub-cache/hosted/pub.dev/patrol_cli-2.8.1/bin/main.dart:6:20)
<asynchronous suspension>
See the logs above to learn what happened. Also consider running with --verbose. If the logs still aren't useful, then it's a bug - please report it.
Exception: Gradle build failed with code 1
#0 AndroidTestBackend.build.<anonymous closure> (package:patrol_cli/src/android/android_test_backend.dart:67:9)
<asynchronous suspension>
#1 DisposeScope.run (package:dispose_scope/src/dispose_scope.dart:46:7)
<asynchronous suspension>
#2 AndroidTestBackend.build (package:patrol_cli/src/android/android_test_backend.dart:42:5)
<asynchronous suspension>
#3 TestCommand._build (package:patrol_cli/src/commands/test.dart:292:7)
<asynchronous suspension>
#4 TestCommand.run (package:patrol_cli/src/commands/test.dart:226:5)
<asynchronous suspension>
#5 CommandRunner.runCommand (package:args/command_runner.dart:212:13)
<asynchronous suspension>
#6 PatrolCommandRunner.runCommand (package:patrol_cli/src/runner/patrol_command_runner.dart:348:18)
<asynchronous suspension>
#7 PatrolCommandRunner.run (package:patrol_cli/src/runner/patrol_command_runner.dart:292:18)
<asynchronous suspension>
#8 patrolCommandRunner (package:patrol_cli/src/runner/patrol_command_runner.dart:70:20)
<asynchronous suspension>
#9 main (file:///Users/wiktorzajac/.pub-cache/hosted/pub.dev/patrol_cli-2.8.1/bin/main.dart:6:20)
<asynchronous suspension>
Patrol version
patrol: 3.9.0
Patrol Doctor output
Patrol Doctor output
Patrol doctor:
Patrol CLI version: 2.8.1
Flutter command: flutter
Flutter 3.22.2 • channel stable
Android:
• Program adb found in /opt/homebrew/bin/adb
• Env var $ANDROID_HOME set to ~/Library/Android/sdk
iOS / macOS:
• Program xcodebuild found in /usr/bin/xcodebuild
• Program ideviceinstaller found in /opt/homebrew/bin/ideviceinstaller
Flutter Doctor output
Flutter Doctor output
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.22.2, on macOS 14.4.1 23E224 darwin-arm64, locale en-PL)
[✓] Android toolchain - develop for Android devices (Android SDK version 35.0.0-rc3)
[✓] Xcode - develop for iOS and macOS (Xcode 15.3)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2023.3)
[✓] VS Code (version 1.87.2)
[✓] Connected device (4 available)
[✓] Network resources
• No issues found!