package com.mumux.androidtesting.uiautomator; import com.android.uiautomator.testrunner.UiAutomatorTestCase; import com.mumux.androidtesting.runner.ScenarioRunner; import com.mumux.androidtesting.runner.ScenarioTestCase; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.Date; public class ScenarioUiAutomatorTestCase extends UiAutomatorTestCase { private final static String DEVICE_DIR = "/data/local/tmp"; public void testBasic() throws JSONException { System.err.println("DEBUG - testBasic"); System.err.println("params=" + getParams()); final String inputDir = DEVICE_DIR + "/testrunner/input"; final String outputDir = DEVICE_DIR + "/testrunner/output"; String[] inputFiles = getParams().getString("input_files").split(","); for (String inputFile : inputFiles) { if (!new File(inputDir, inputFile).exists()) { System.err.println("Input File " + inputFile + " can not be found in " + inputDir); return; } } JSONArray tests = new JSONArray(); ScenarioRunner runner = new ScenarioRunner(this, Runtime.getRuntime(), true, new File(outputDir)); runner.setPrintStream(System.err); ScenarioTestCase testCase; FileWriter file; int counter = 0; long start = System.currentTimeMillis(); try { for (String inputFile : inputFiles) { System.err.println(inputFile); testCase = runner.run(new FileReader(new File(inputDir, inputFile)), counter); System.err.println("testCase=" + testCase.toJson()); tests.put(testCase.toJson()); counter++; } JSONObject testResult = new JSONObject(); testResult.put("date", new Date()); testResult.put("duration", System.currentTimeMillis() - start); testResult.put("tests", tests); file = new FileWriter(outputDir + "/test.json"); file.write(testResult.toString()); file.close(); } catch (IOException e) { e.printStackTrace(); } } }