ios_tests/lib/run.rb in appium_lib-3.0.3 vs ios_tests/lib/run.rb in appium_lib-4.0.0

- old
+ new

@@ -1,106 +1,4 @@ -require 'rubygems' -require 'spec' -require 'hashdiff' - -require_relative '../../lib/appium_lib' - -=begin -Run all Android tests: - ruby run.rb android - -Run only the view album test: - ruby run.rb ios view_album -=end - -# Sanity check -a = OpenStruct.new x: 'ok' -raise 'x issue' unless a.x == 'ok' - -# common methods -def back_click(opts={}) - opts ||= {} - search_wait = opts.fetch(:wait, 60 * 1.7) - # iOS may have multiple 'back' buttons - # select the first displayed? back button. - wait(search_wait) do - button_exact('Back').click - end -end - -def leave_textfields - back_click - screen.must_equal catalog -end - -def go_to_textfields - screen.must_equal catalog - wait_true { text('textfield').click; screen == 'TextFields' } # wait for screen transition - screen.must_equal 'TextFields' -end - -def screen - $driver.find_element(:class, 'UIANavigationBar').name -end - -def catalog - 'UICatalog' -end - -## - -caps = Appium.load_appium_txt file: File.expand_path('..', __FILE__), verbose: true -caps = caps.merge({ appium_lib: { debug: true, wait: 30 } }) - -dir = File.expand_path '..', __FILE__ -device = ARGV[0].downcase.strip -devices = %w[ android selendroid ios ] -raise 'Expected android, selendroid or ios as first argument' unless devices.include? device - -one_test = ARGV[1] -test_dir = "/#{device}/" - -caps[:app] = ENV['SAUCE_PATH'] if ENV['SAUCE_USERNAME'] && ENV['SAUCE_ACCESS_KEY'] - -trace_files = [] - -if one_test - unless File.exists? one_test - # ensure ext is .rb - one_test = File.join(File.dirname(one_test), - File.basename(one_test, '.*') + '.rb') - one_test = File.join(dir, test_dir + 'specs/', one_test) - else - one_test = File.expand_path one_test - end - raise "\nTest #{one_test} does not exist.\n" unless File.exists?(one_test) - Appium::Driver.new(caps).start_driver - # require support (common.rb) - Dir.glob(File.join dir, test_dir + '/*.rb') do |test| - require test - trace_files << test - end - puts "Loading one test: #{one_test}" - require one_test - trace_files << one_test -else - # require all - Dir.glob(File.join dir, test_dir + '**/*.rb') do |test| - # load all tests - trace_files << test - puts " #{File.basename(test, '.*')}" - require test - end - Appium::Driver.new(caps).start_driver -end - -trace_files.map! do |f| - f = File.expand_path f - # ensure all traced files end in .rb - f = File.join(File.dirname(f), File.basename(f, '.*') + '.rb') - f -end - -# Exit after tests. -Minitest.after_run { $driver.x if $driver } -# Run Minitest. Provide test file array for tracing. -Minitest.run_specs({ :trace => trace_files }) +# ios tests have a set of common helper methods +require_relative 'common' +# run file is identical to android +require_relative '../../android_tests/lib/run' \ No newline at end of file