How to set a custom chrome binary path for apparition driver? - capybara

I'm using apparition together with heroku-buildpack-google-chrome configured as unstable and I'm trying to specify a custom chrome binary path: /app/.apt/usr/bin/google-chrome-unstable.
Is there a way to do this in apparition?

If you set the environment variable BROWSER_PATH it will be used as the location of the Chrome binary.

Related

Using Environment Variables for Per Environment Configuration in iOS

I am working on an iOS application that uses a pretty normal multi-environment deployment model. We have a QA, Prod, and "Dev" version of the app that all talk to their own corresponding backends. I am new to iOS development but am familiar with Node, Java, and a few other development environments.
The first thing I reached to for this problem was Environment Variables. I saw that XCode had a way to set environment variables in a Scheme and they could be read pretty easily. So I used 4 environment variables per environment to configure a few needed backend hosts. Everything seemed to be going fine until I realized that those environment variables seem to ONLY be available when running the app through XCode. Is that correct? Is there no way to configure environment variables that "bundle up" with an app? If so, the ability to configure environment variables at all seems like a footgun.
What I mean is, In a NodeJS or Java app, I can set a number of useful "necessary" configs like a backend hosts and use some approach to provide those values when running the app for real. It seems like in iOS / Swift, environment variables are only useful for development-time debugging settings? The asymmetry between what's available in XCode vs a "real" shipped app seems odd.
Is there a similar standard way that I can configure my app for multiple different environments that works on shipped applications and ideally just involves reading some value at runtime rather than using conditionals and/or using compiler flags or something?
You are correct. The Environment Variables are only meaningful when executing the Scheme in Xcode. Their primary use in that context is to activate debugging features that are not on all the time. For example, if you try to create a bitmap Core Graphics context (CGContext) with an invalid set of parameters, the debugger may tell you to set an environment variable to see additional debugging output from Core Graphics. Or you can set environment variables to turn on memory management debugging features.
When you are running an application on a server, the Unix framework in which the application is running is part of the "user experience". In that context it makes sense for the application to use things like environment variables.
As developers we understand that a mobile app is running inside a unix process, but that unix environment is mostly unavailable to us. A similar feature that is common to Unix apps is command line arguments. An iOS application on startup receives command line arguments (argc and argv) but there is no way specify those when the app is launched either.
There are a number of places you could include configuration information like that which you describe in your application. The most common that I can think of is to include the setting in the applications Info.plist. At runtime you could access the contents of the property list by fetching the main bundle and asking for it's infoDictionary:
let infoBundle = Bundle.main.infoDictionary
let mySetting = infoBundle["SomeSetting"]
When the application's info.plist is created, it DOES have access to the environment variables declared in the Scheme so you could put the environment variables in the scheme, reference them in the Info.plist, and retrieve them at runtime from the main bundle.
try Using FeatureFlags, maybe will help you, check this
https://medium.com/#rwbutler/feature-flags-a-b-testing-mvt-on-ios-718339ac7aa1

Neo4j: change default Browser settings

I want "Do not use Bolt" checkbox being checked by default in Neo4j Browser Settings.
Setting dbms.connector.bolt.enabled=false doesn't affect this field in browser.
I'm using Neo4j 3.1.4
How can I change Browser Settings default values?
For now the only solution I found is to change the default settings in neo4j-browser-<version>.jar.
To change useBolt setting you need to change useBolt:!0 to useBolt:!1 in the JavaScript file located in browser/scripts folder of jar file.
This solution was tested for neo4j-browser version 2.0.0-M10.
Or alternatively you can try to clone neo4j-browser, make needed changes and build a jar file.
It would be nice to have an ability to change such settings via a configuration file.

Is it possible to get a list of the installed browsers using dart:io?

Is it possible to get a list of the installed browsers using dart:io ?
More specifically, I would want to have a variable
List installedBrowsers in my grinder file, so that my grinder will work independently of the OS and installed browsers.
#DefaultTask('Test')
test() =>
new TestRunner().test(
files: myFile,
platformSelector: installedBrowsers);
You can use the package which to find executables with a certain name.
Alternatively you can require one or more specific environment variables to be set to get the browser names and/or executable paths of the available browsers.

QA-C: license file

I'm trying to run QA-C 7.2 on a Nightly Build that I program using Python.
It does run but the problem I encounter is, that I cannot save the license file configuration settings because IM not a 'license admin'. Hence, everytime I run QA-C it requires me to browse to the license.dat
Does anyone know a way around this, for example passing the license file configuration (eg path2license_dat) as a parameter when I call the exe? Or somehow saving this information?
I found out that it works when setting the environment variable LM_LICENSE_FILE to the path to license.dat

Is it possible to set the package root for a Dartium launch?

I'd like to be able to do this on a per-launch basis without having to set the global package root in Tools->Preferences. Is this possible?
I see an 'arguments' option in the Dartium launch configuration, but that appears to be passing args to the browser, not the embedded VM?
Currently the editor does not have support for setting package root for Dartium launches on a per launch basis. Dartium looks for the value for package root in the environment variable DART_PACKAGE_ROOT, it does not get passed in as an argument.

Resources