A bridge to enable python code to use the detox grey-box testing API ( https://github.com/wix/detox )
The package requires nvm to be installed. Either the NVM environment variable needs to contain the full path of the nvm.sh script, or the NVM_DIR environment variable needs to point at the root directory of nvm containing the nvm.sh script.
The code emitted by this bridge requires node 7.6.0 or higher.
3.7 is required to use the package.
Follow the getting started guide from detox ( https://github.com/wix/detox/blob/master/docs/Introduction.GettingStarted.md )
from detox_bridge import jsawait, by, detox, device, element, expect, node_with_detox
app_path = "detox/examples/demo-react-native"
# Start Node server in app_path root folder that contains node_modules
with node_with_detox(app_path=app_path, default_timeout=10) as appserver:
# Detox Config (we could also load this from package.json)
ios_sim_release = {
"binaryPath": "ios/build/Build/Products/Release-iphonesimulator/example.app",
"type": "ios.simulator",
"name": "iPhone 7 Plus"
}
configurations_obj = {"configurations": {"ios.sim.release": ios_sim_release}}
# Longer timeout since the app may be installed
appserver(jsawait(detox.init(configurations_obj)), timeout=360)
# Reload react native
appserver(jsawait(device.reloadReactNative()))
# Expectation
appserver(jsawait(expect(element(by.id('welcome'))).toBeVisible()))
# Cleanup
appserver(jsawait(detox.cleanup()))
Python 3.7 are required to run the suite suite.
After checkout run:
make app_local_requirements
To run the test suite:
make test
Once the venv is there you can also run some tests via tox:
venv/bin/tox -e py35 -- -k <regex>