saucelabs / saucectl

A command line interface for the Sauce Labs platform.
Apache License 2.0
42 stars 16 forks source link

[XCUI] --env doesn't work for iOS xcuitest suites #398

Open renaud-vmg opened 3 years ago

renaud-vmg commented 3 years ago

Current behavior

The current behaviour of --env SOME=THING appears to not set environment variables "in" the device when launching a test (as is supported by xcodebuild-run tests). I can see USER, XPC_FLAGS, XPC_SERVICE_NAME and others, but additional --env-provided values seems to be broken.

Desired behavior

The expected behaviour is that using saucectl's --env SOME=THING cli option would set environment variables on the target as is being done by xcodebuild-driven testsé

Config to reproduce

Run any iOS xcuiapplication-based tests that print out the whole environment. Example code to do that in a setup method:

    for (NSString* key in [[NSProcessInfo processInfo] environment].allKeys) {
        NSLog(@"Full map reveal - key: %@", key);
        NSLog(@"Full map reveal - element: %@", [[NSProcessInfo processInfo] environment][key]);
        NSLog(@"==================================================");
    }

Versions

0.59.x

alexplischke commented 3 years ago

Sorry, we need to better document this, but the ability to set env variables is not available for espresso/xcuitests. 🙏

renaud-vmg commented 3 years ago

@alexplischke based on the above foreach loop, I still think there could be a backend change that would allow at least iOS env settings to be passed (as xcodebuild allows that locally). For the immediate term, I unfortunately might go with your suggestion, but on the long run this should be fixed in some way.

wswebcreation commented 1 year ago

@renaud-vmg

Is this for Real or Virtual devices? We are working on supporting this for virtual as we speak. Real devices is harder due to the technology we use