First, you need a mobile_test.json
file at the root folder of repository.
{
"build": { "ios": "./build_ios.sh", "android": "./build_droid.sh" },
"binary_path": {
"ios": "platforms/ios/build/device/HelloWorld.app",
"android": "platforms/android/build/outputs/apk/android-release-unsigned.apk"
},
"target": "all",
"priority": "normal",
"csname": { "android": "com.example.hello", "ios": "com.example.hello" },
"timeout": 150,
"serverScript": "serverApp/"
}
build : Build script
binary_path: The location of the compiled app (relative to repository root)
target: test target -> all, android, ios
priority: normal, asap (normal or as soon as possible)
csname: application identifier name
timeout: max time for test in seconds (consider 150 as min)
serverScript: script folder location (to run during the test) (i.e. coordonation server)
-
serverScript path should have an
index.js
for the server application entry point -
serverScript receives a JSON command line parameter as given below;
jx index.js "{devices:{ios:4, android:5}}"
-
serverScript default host ip is
192.168.1.150
-
serverScript server's port
8060
is reserved
By Default Bluetooth and WiFi is disabled for all the Android devices and test is expected to turn them off on exit.
See Below; (Use that function to finalize the test!)
- You should tell the testing system that application is ready to exit. See sample code below.
var end = function(failed){
var msg = "SUCCESS"
if (failed)
msg = "FAILED";
Mobile.toggleBluetooth(false, function() {
Mobile.toggleWiFi(false, function() {
console.log("****TEST TOOK: ", Date.now() - start, " ms ****" );
console.log("****TEST_LOGGER:[PROCESS_ON_EXIT_" + msg + "]****");
});
});
};
-
Add Test System's IP address to Repository->Settings->Web Hook->Add Webhook
-
!!!!Select only Pull Request!!!!
That's all (see this repo's webhook for IP address)
See build_android.sh
and build_ios.sh
files for ERROR_ABORT
approach. It's important to exit
the script with an error code in order to notify node manager.
When a new webhook is defined on a repository, test system tests the master branch first and reports the issues by creating a new issue on the repo.
Make sure any test is no longer than 35 mins