module Acouchi class TestRunner def initialize configuration @configuration = configuration end def start apk_installer = ApkInstaller.new(@configuration) apk_installer.uninstall_apk apk_installer.install_apk ProcessLauncher.new(Executables.adb, "forward", "tcp:7103", "tcp:7103").start_and_crash_if_process_fails @test_runner_process = ProcessLauncher.new(Executables.adb, "shell", "am", "instrument", "-w", "#{@configuration.target_package}/android.test.InstrumentationTestRunner") @test_runner_process.start_in_background while ready? == false sleep 0.1 end end def stop HTTParty.get("http://127.0.0.1:7103/finish") rescue nil end private def ready? HTTParty.get("http://127.0.0.1:7103/").body == "Acouchi" rescue false end end end