Коды ошибок ADB

У нас есть Android-устройство, и в рамках тестирования мне нужно выпустить консольное тестовое приложение на целевом устройстве. Если тестовое приложение обнаруживает ошибку, оно возвращает -1.

Я могу использовать оболочку adb для удаленного запуска тестовых приложений, но я не могу найти способ возврата кода возврата. Мне нужно это, чтобы я мог создать это в автоматическом наборе тестов.

Я могу попробовать grepping вывод консоли для некоторого текста с ошибкой, но это немного грязно. Кто-нибудь знает более элегантное решение?

Solutions Collecting From Web of "Коды ошибок ADB"

Обходной путь для получения кода выхода: adb shell '{ваша команда здесь}> / dev / null 2> & 1; Echo $? '

Это оболочка вокруг adb в Ruby:

def adb(opt) input = "#{adb_command} #{opt[:command]} #{opt[:params]}" puts "Executing #{input}...\n" output = nil exit_code = 0 def wait_for(secs) if secs begin Timeout::timeout(secs) { yield } rescue print 'execution expired' end else yield end end wait_for(opt[:timeout]) do case opt[:command] when :install, :push, :uninstall output, exit_code = `#{input}`, $?.to_i when :shell input = "#{adb_command} shell \"#{opt[:params]}; echo \\$?\"" output = `#{input}`.split("\n") exit_code = output.pop.to_i output = output.join("\n") else raise 'Error: param command to adb not defined!' end end return if opt[:ignore_fail] and output =~ /#{opt[:ignore_fail]}/ raise output unless exit_code == 0 end 

Вы можете использовать fb-adb, который «распространяет статус выхода из программы, а не всегда выходит со статусом 0».