You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I suspect the Configuring Platforms section is a good place to put it, perhaps under the executable key explanation.
IMO, these environment variables are extremely useful when trying to run in a custom CI environment. Where you might not want to hardcode the executable path into dart_test.yaml.
Hello @jonasfj, I have tried setting those environment variables on Mac OS and Windows.
I used these commands to test:
On Mac: FIREFOX_EXECUTABLE=/Users/test_user/Documents/Firefox.app/Contents/MacOS/firefox dart test pkgs/test/test/runner/browser/firefox_test.dart
On Windows: $env:FIREFOX_EXECUTABLE='c:\Users\joecc\OneDrive\文件\Mozilla Firefox\firefox.exe'; dart test test/runner/browser/firefox_test.dart
Here are the results:
Browser
Mac OS
Windows 10
Edge
✅
✅ [1] [2]
Firefox
✅
✅ [1]
Safari
✅ [3]
N/A
[1]: Windows only. I hit an error when running firefox_test.dart and microsoft_edge_test.dart. In the test "reports an error in onExit", it expects a system error with the wording "Failed to run Firefox: The system cannot find the file specified." (code). However, the actual error message was "Failed to run Firefox: The system cannot find the file specified (at ../../runtime/bin/process_win.cc:577)". I suggest we remove the trailing "." in the assert string to correct the test.
[2] Using an Edge Dev build.
[3] Using a Safari Technology Review build.
I can update the documentation and the unit test to close this issue. Thank you for your attention.
Picking this up if it is still free. @joeccleung, say the word and I will drop it.
Before writing the docs I went looking for what they would describe, and the behaviour does not match them. ExecutableSettings.merge drops environmentOverride, and customizePlatform merges the defaults with the user's settings, so any settings at all for a browser stop the variable from being read. An executable: key is not required; arguments or headless is enough:
That contradicts what 1.23.0 promised ("This overrides any config file settings"), the precedence @jakemac53 and @natebosch settled in #1862, and the ordering the 1.32.0-wip entry applies to DART_TEST_REPORTER. It also takes out the CI case this issue gives as the motivation, since a project that configures anything for Chrome cannot point the runner at another binary.
Carrying the field through merge restores it. I have that and a regression test in custom_platform_test.dart ready; happy to send the fix and the docs as one PR or keep them separate.
Activity
joeccleung commentedon Apr 30, 2026
Hello @jonasfj, I have tried setting those environment variables on Mac OS and Windows.
I used these commands to test:
FIREFOX_EXECUTABLE=/Users/test_user/Documents/Firefox.app/Contents/MacOS/firefox dart test pkgs/test/test/runner/browser/firefox_test.dart$env:FIREFOX_EXECUTABLE='c:\Users\joecc\OneDrive\文件\Mozilla Firefox\firefox.exe'; dart test test/runner/browser/firefox_test.dartHere are the results:
[1]: Windows only. I hit an error when running firefox_test.dart and microsoft_edge_test.dart. In the test "reports an error in onExit", it expects a system error with the wording "Failed to run Firefox: The system cannot find the file specified." (code). However, the actual error message was "Failed to run Firefox: The system cannot find the file specified (at ../../runtime/bin/process_win.cc:577)". I suggest we remove the trailing "." in the assert string to correct the test.
[2] Using an Edge Dev build.
[3] Using a Safari Technology Review build.
I can update the documentation and the unit test to close this issue. Thank you for your attention.
jonasfj commentedon Apr 30, 2026
Yusufihsangorgel commentedon Aug 1, 2026
Picking this up if it is still free. @joeccleung, say the word and I will drop it.
Before writing the docs I went looking for what they would describe, and the behaviour does not match them.
ExecutableSettings.mergedropsenvironmentOverride, andcustomizePlatformmerges the defaults with the user's settings, so any settings at all for a browser stop the variable from being read. Anexecutable:key is not required;argumentsorheadlessis enough:That contradicts what 1.23.0 promised ("This overrides any config file settings"), the precedence @jakemac53 and @natebosch settled in #1862, and the ordering the 1.32.0-wip entry applies to
DART_TEST_REPORTER. It also takes out the CI case this issue gives as the motivation, since a project that configures anything for Chrome cannot point the runner at another binary.Carrying the field through
mergerestores it. I have that and a regression test incustom_platform_test.dartready; happy to send the fix and the docs as one PR or keep them separate.natebosch commentedon Aug 6, 2026
I think we can put them both in 1 PR
Keep the browser executable env override through a settings merge (da…