/testdummy

Test dummy for CI

Primary LanguageJavaScript

Details on setting up the test application

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)

About Integration 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

Toggle WiFi and Bluetooth on Android!!!

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!)

Basics of using CI

  • 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)

Important

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