Class: ParallelAppium::IOS

Inherits:
Object
  • Object
show all
Defined in:
lib/parallel_appium/ios.rb

Overview

Connecting to iOS devices

Instance Method Summary collapse

Constructor Details

#initializeIOS

Returns a new instance of IOS.



5
6
7
8
# File 'lib/parallel_appium/ios.rb', line 5

def initialize
  # Get available simulators
  @simulators = `instruments -s devices`.split("\n").reverse
end

Instance Method Details

#devicesObject

Devices after cleanup and supplemental data included



20
21
22
23
24
25
26
27
28
# 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_informationObject

Filter simulator data



11
12
13
14
15
16
17
# 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