class ParallelAppium::IOS

Connecting to iOS devices

Public Class Methods

new() click to toggle source
# File lib/parallel_appium/ios.rb, line 5
def initialize
  # Get available simulators
  @simulators = `instruments -s devices`.split("\n").reverse
end

Public Instance Methods

devices() click to toggle source

Devices after cleanup and supplemental data included

# File lib/parallel_appium/ios.rb, line 20
def devices
  devices = []
  simulator_information.each_with_index do |data, i|
    devices.push(name: @simulators[i][0, @simulators[i].index('(') - 1], platform: 'ios', os: data[0], udid: data[1],
                 wdaPort: 8100 + i + ENV['THREADS'].to_i, thread: i + 1)
  end
  ENV['DEVICES'] = JSON.generate(devices)
  devices
end
simulator_information() click to toggle source

Filter simulator data

# File lib/parallel_appium/ios.rb, line 11
def simulator_information
  re = /\([0-9]+\.[0-9](\.[0-9])?\) \[[0-9A-Z-]+\]/m

  # Filter out simulator info for iPhone platform version and udid
  @simulators.select { |simulator_data| simulator_data.include?('iPhone') && !simulator_data.include?('Apple Watch') }
             .map { |simulator_data| simulator_data.match(re).to_s.tr('()[]', '').split }[0, ENV['THREADS'].to_i]
end