patrol icon indicating copy to clipboard operation
patrol copied to clipboard

Lack of error description in case of incorrect JAVA_HOME path

Open wzslr321 opened this issue 8 months ago • 0 comments

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!

wzslr321 avatar Jun 28 '24 09:06 wzslr321