parallel_appium 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0dd9bf8c3fad781b6c92dac1b50418460552e227
4
- data.tar.gz: ff75fc96b8a649452ef4eb0e750d395f00bac941
3
+ metadata.gz: fcfc289c2b24a3fb4ee3e8be46e9b9c9a4479754
4
+ data.tar.gz: 7af36ebcd29622f33fd4dddeccc4b60a40bd1d2c
5
5
  SHA512:
6
- metadata.gz: d733a1478338bf3b88ef7d6e1791f6992becce51397a7658a4f65299511b8d7d65b16da180312d3905e8164093cd3812e0be20bf2a348a7665031bb8d58de26c
7
- data.tar.gz: 95c786e84905a10948994273ddf1f8f510fdd40488c8e9f8f012fb1733022484bc6a150ea779908f4a6d8ff33891afcee1e41a1f1b57aeed0a9a3af65aae2baa
6
+ metadata.gz: 6e6f21359696283cfe95dee022803464eb6e61e0348282ef2545fef2c0a5c31af229f9ad3e76d75dae69c21395cc7a62bb8855a40c79a8ca1e4785386d1379ff
7
+ data.tar.gz: f06af407504f7304577c1eed08bcf4d536867bad468ed4ef4c05f3c9b57f2b670543c06d902ce102f5984e844eae31ed7981239a8368838b65e92ebba89f58df
checksums.yaml.gz.sig CHANGED
Binary file
data/.gitignore CHANGED
@@ -454,4 +454,6 @@ hsd-report
454
454
 
455
455
  tmp/
456
456
 
457
- .vscode/
457
+ .vscode/
458
+
459
+ *.sh
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- parallel_appium (0.2.0)
4
+ parallel_appium (0.2.2)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -1,26 +1,85 @@
1
1
  # parallel_appium
2
2
 
3
- Distributed mobile testing in Appium
3
+ Single and Distributed Parallel mobile testing in Appium and RSpec fro Android and iOS
4
+
5
+ ## Quick check
6
+
7
+ If you'd like to check if you're good to go for this project simply execute
8
+
9
+ ```rake parallel_appium:validate_android``` for Android
10
+
11
+ ```rake parallel_appium:validate_ios``` for iOS
12
+
13
+
14
+ The messages will indicate if there's any component necessary for the platform that's still not set up as yet.
15
+
4
16
 
5
17
  ## Installation
6
18
 
7
19
  Add this line to your application's Gemfile:
8
20
 
9
- ```ruby
21
+ ```
10
22
  gem 'parallel_appium'
11
23
  ```
12
24
 
13
25
  And then execute:
14
26
 
15
- $ bundle
27
+ $ bundle install
16
28
 
17
29
  Or install it yourself as:
18
30
 
19
31
  $ gem install parallel_appium
20
32
 
21
- ## Usage
33
+ ## Getting started and ssage
34
+
35
+ To get started with this gem there's 3 lines of code you'll need to know to include within your project.
36
+ These lines handle the following.
37
+
38
+ ### Starting the servers
39
+
40
+ The library at the moment doesn't offer the ability to connect to existing appium processes and instead
41
+ starts appium servers and the selenium grid server as needed. The following line of code is what you'll need to include
42
+ for the library to handle this,
43
+
44
+ ```ParallelAppium::ParallelAppium.new.start platform: platform, file_path: file_path```
45
+
46
+ where platform is either android, ios or all and file_path is the absolute path to the folder or spec file
47
+ to be executed.
48
+
49
+ ### Initializing the appium instance(s)
50
+
51
+ As expected each appium instance will need to be loaded with capabilities defining all kinds of important things
52
+ about how the tests executing on that instance will work, hence this will need to be done before the tests begin
53
+ it's best to put this in some form of 'before all' block that will execute it prior to all the tests executing.
54
+
55
+ The following line of code is an example of what you'll need to use
56
+
57
+ ```ParallelAppium::ParallelAppium.new.initialize_appium platform: ENV['platform']```
58
+
59
+ The initialize_appium function can take two parameters
60
+
61
+ 1. platform - If provided it will look for a appium-{platform}.txt file in the root of the project and load capabilities
62
+ from that location.
63
+ 2. caps - The capabilities as a map to be loaded.
64
+
65
+ ### Setting UDID for the test
66
+
67
+ When distributing tests across multiple devices the library spreads the specs across multiple threads and depends on the
68
+ UDID environment variable to know which device it's working with for the specific test file, as such this will need to
69
+ be setup in each test file, simply include the following line of code at the top of the test file after any dependencies
70
+ and the library will set this up as needed,
71
+
72
+ ```ParallelAppium::Server.new.set_udid_environment_variable```
73
+
74
+ This is all you need to get started with this library. There's a number of environment variables set by the library
75
+ for the purpose of writing easier cross platform tests. These are described in more detail below.
76
+
77
+ ### Environment variables
78
+
79
+
80
+ ### Tags
81
+
22
82
 
23
- TODO: Write usage instructions here
24
83
 
25
84
  ## Development
26
85
 
data/Rakefile CHANGED
@@ -5,24 +5,38 @@ RSpec::Core::RakeTask.new(:spec)
5
5
 
6
6
  task default: :spec
7
7
 
8
-
9
- # TODO: Move into functions
10
- desc 'Validate Android'
11
- task :validate_android do
12
- %x(emulator 2>&1)
13
- if $? == 0
14
- puts "emulator command configured properly"
15
- else
16
- puts "emulator command not configured properly"
8
+ # TODO: Move checks into gem
9
+ namespace :parallel_appium do
10
+ desc 'Validate Android'
11
+ task :validate_android do
12
+ %x(which emulator 2>&1)
13
+ puts '==========================================='
14
+ can_do_android = true
15
+ can_do_android = can_do_android && ($? == 0)
16
+ if can_do_android
17
+ puts "emulator command configured properly"
18
+ else
19
+ puts "emulator command not configured properly"
20
+ exit
21
+ end
22
+ puts '==========================================='
23
+ puts 'Android good to go'
17
24
  end
18
- end
19
25
 
20
- desc 'Validate iOS'
21
- task :validate_ios do
22
- %x(instruments 2>&1)
23
- if $? == 0
24
- puts "instruments command configured properly"
25
- else
26
- puts "instruments command not configured properly"
26
+ desc 'Validate iOS'
27
+ task :validate_ios do
28
+ %x(which instruments 2>&1)
29
+ puts '==========================================='
30
+ can_do_ios = true
31
+ can_do_ios = can_do_ios && ($? == 0)
32
+ if can_do_ios
33
+ puts "instruments command configured properly"
34
+ else
35
+ puts "instruments command not configured properly"
36
+ exit
37
+ end
38
+
39
+ puts '==========================================='
40
+ puts 'iOS good to go'
27
41
  end
28
42
  end
data/build.sh CHANGED
@@ -1 +1,2 @@
1
+ #!/usr/bin/env bash
1
2
  gem build parallel_appium.gemspec
@@ -9,11 +9,11 @@ module ParallelAppium
9
9
 
10
10
  # Filter simulator data
11
11
  def simulator_information
12
- re = /\([0-9]+\.[0-9]\) \[[0-9A-Z-]+\]/m
12
+ re = /\([0-9]+\.[0-9](\.[0-9])?\) \[[0-9A-Z-]+\]/m
13
13
 
14
14
  # Filter out simulator info for iPhone platform version and udid
15
15
  @simulators.select { |simulator_data| simulator_data.include?('iPhone') && !simulator_data.include?('Apple Watch') }
16
- .map { |simulator_data| simulator_data.scan(re)[0].tr('()[]', '').split }[0, ENV['THREADS'].to_i]
16
+ .map { |simulator_data| simulator_data.match(re).to_s.tr('()[]', '').split }[0, ENV['THREADS'].to_i]
17
17
  end
18
18
 
19
19
  # Devices after cleanup and supplemental data included
@@ -28,3 +28,4 @@ module ParallelAppium
28
28
  end
29
29
  end
30
30
  end
31
+
@@ -1,3 +1,3 @@
1
1
  module ParallelAppium
2
- VERSION = '0.2.1'.freeze
2
+ VERSION = '0.2.2'.freeze
3
3
  end
@@ -93,9 +93,9 @@ module ParallelAppium
93
93
  # @param [boolean] parallel
94
94
  def execute_specs(platform, threads, spec_path, parallel = false)
95
95
  command = if parallel
96
- "platform=#{platform} parallel_rspec -n #{threads} #{spec_path} > output/#{platform}.log"
96
+ "platform=#{platform} parallel_rspec -n #{threads} #{spec_path} --out output/#{platform}.log"
97
97
  else
98
- "platform=#{platform} rspec #{spec_path} --tag #{platform} > output/#{platform}.log"
98
+ "platform=#{platform} rspec #{spec_path} --tag #{platform} --out output/#{platform}.log"
99
99
  end
100
100
 
101
101
  puts "Executing #{command}"
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parallel_appium
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Javon Davis
@@ -36,7 +36,7 @@ cert_chain:
36
36
  pjBkMT4ow4ZhVgBKPDT2jh74b8g2rIDSbkJIj0lf35WXqJqZzseabGPpTbtzJEap
37
37
  HIrd7mPILLe3
38
38
  -----END CERTIFICATE-----
39
- date: 2018-07-07 00:00:00.000000000 Z
39
+ date: 2018-07-12 00:00:00.000000000 Z
40
40
  dependencies:
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: appium_lib
@@ -159,7 +159,6 @@ files:
159
159
  - LICENSE
160
160
  - README.md
161
161
  - Rakefile
162
- - apps/.gitignore
163
162
  - bin/console
164
163
  - bin/setup
165
164
  - build.sh
metadata.gz.sig CHANGED
Binary file
data/apps/.gitignore DELETED
@@ -1,3 +0,0 @@
1
- # Created by .ignore support plugin (hsz.mobi)
2
- *.apk
3
- *.app